摘要:什么是設計模式設計模式是一種能夠被反復使用,符合面向對象特性的代碼設計經驗的總結,合理的使用設計模式能夠讓你得代碼更容易維護和可靠設計模式的類型共分為創建型模式,結構型模式,行為型模式三種創建型模式創建型模式是對一個類的實例化過程進行了抽象
什么是設計模式
設計模式是一種能夠被反復使用,符合面向對象特性的代碼設計經驗的總結,合理的使用設計模式能夠讓你得代碼更容易維護和可靠創建型模式設計模式的類型共分為創建型模式,結構型模式,行為型模式三種
創建型模式是對一個類的實例化過程進行了抽象,把對象的創建和對象的使用進行了分離,創建模式有
單例模式
抽象工廠模式
建造者模式
工廠模式
原型模式
單例模式單例模式的定義是保證一個類僅有一個實例,單例模式它必須自行創建這個實例,并提供一個訪問他的全局的訪問點es5的實現
var only = function(data) { this.data = data; this.Instance = null; } only.go = function(data) { if(!this.Instance) { this.Instance = new only(data); } return this.Instance; } let obj1 = only.go("1") let obj2 = only.go("2") console.log(obj1 === obj2); console.log(obj1); console.log(obj2);es6
class only { constructor(data) { if (only.prototype.Instance === undefined) { this.data = data; only.prototype.Instance = this; } return only.prototype.Instance; } } let ob1 = new only("a"); let ob2 = new only("b"); ob2.init = "init"; console.log(ob1 === ob2); console.log(ob1); console.log(ob2);
上邊的代碼中,無論怎么new,其結果都是唯一的那個實例
單例模式的優缺點單例模式,因為他的實例是唯一的,所以完全可以通過創建的時候,嚴格的去控制怎么去創建和訪問或者說拋出錯誤,如果存在頻繁的創建和銷毀的操作的時候,單例模式事可以提高性能的
但是同樣的,單純的單例模式中是沒有抽象操作的,所以說單例模式是一個不便于擴展的模式
單例模式的使用場景舉個例子比如說在項目中的某些時候,我們需要一個dom元素,但是這個元素并不存在,我們需要創建他,但是在創建完之后,如果我們再去點這個按鈕的時候,如果他再一次的創建dom,顯然是不合理的,dom會越來越多一直被創建,那么在這個時候,我們可以使用單例模式來實現我們想要的效果
例子實現上邊的改吧改吧
class only { constructor(data) { if (only.prototype.Instance === undefined) { var div = document.createElement("div"); div.innerHTML = data; only.prototype.Instance = div; } return only.prototype.Instance; } } let ob1 = new only("a"); let ob2 = new only("b"); ob2.init = "init"; console.log(ob1 === ob2); console.log(ob1); console.log(ob2);
如圖
dom元素并不會被重復創建,可以在上邊的例子中加一個狀態,根據狀態判斷是否要顯示,避免了資源的浪費
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/105563.html
摘要:什么是單例模式單例模式是單例模式,也叫單子模式,是一種常用的軟件設計模式。在應用這個模式時,單例對象的類必須保證只有一個實例存在。 什么是單例模式 單例模式是單例模式,也叫單子模式,是一種常用的軟件設計模式。 在應用這個模式時,單例對象的類必須保證只有一個實例存在。 許多時候整個系統只需要擁有一個的全局對象,這樣有利于我們協調系統整體的行為。。(來源于維基百科) 1.創建單例模式,案...
摘要:文章系列設計模式單例模式設計模式策略模式設計模式代理模式概念單例模式的定義是保證一個類僅有一個實例,并提供一個訪問它的全局訪問點。在開發中,單例模式的用途同樣非常廣泛。 前言 本系列文章主要根據《JavaScript設計模式與開發實踐》整理而來,其中會加入了一些自己的思考。希望對大家有所幫助。 文章系列 js設計模式--單例模式 js設計模式--策略模式 js設計模式--代理模式 概念...
摘要:什么是單例模式單例模式是一種十分常用但卻相對而言比較簡單的單例模式。對象就是單例模式的體現。總結單例模式雖然簡單,但是在項目中的應用場景卻是相當多的,單例模式的核心是確保只有一個實例,并提供全局訪問。 1. 什么是單例模式? 單例模式是一種十分常用但卻相對而言比較簡單的單例模式。它是指在一個類只能有一個實例,即使多次實例化該類,也只返回第一次實例化后的實例對象。單例模式不僅能減少不必要...
閱讀 995·2021-11-23 09:51
閱讀 3488·2021-11-22 12:04
閱讀 2730·2021-11-11 16:55
閱讀 2960·2019-08-30 15:55
閱讀 3239·2019-08-29 14:22
閱讀 3363·2019-08-28 18:06
閱讀 1253·2019-08-26 18:36
閱讀 2139·2019-08-26 12:08