溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

JavaScript常用設(shè)計(jì)模式有哪些

發(fā)布時(shí)間:2021-11-06 15:32:59 來源:億速云 閱讀:124 作者:小新 欄目:web開發(fā)

這篇文章主要為大家展示了“JavaScript常用設(shè)計(jì)模式有哪些”,內(nèi)容簡(jiǎn)而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“JavaScript常用設(shè)計(jì)模式有哪些”這篇文章吧。

設(shè)計(jì)模式

設(shè)計(jì)模式是一種在長(zhǎng)時(shí)間的經(jīng)驗(yàn)與錯(cuò)誤中總結(jié)出來可復(fù)用的解決方案

設(shè)計(jì)模式主要分為三類:

創(chuàng)造型設(shè)計(jì)模式 : 專注于處理對(duì)象的創(chuàng)建

Constructor構(gòu)造器模式、Factory工廠模式,Singleton單例模式、builder生成器模式

構(gòu)造型設(shè)計(jì)模式 : 對(duì)象間組合,簡(jiǎn)歷對(duì)象之間的關(guān)系

Decorator裝飾者模式、Facede外觀模式、Flyweight享元模式、Adapter適配器模式,Proxy代理模式

行為設(shè)計(jì)模式:簡(jiǎn)化和改善對(duì)象間的通信

Mediator中介者模式、Observer觀察者模式 

常用的設(shè)計(jì)模式 

1、觀察者模式

一個(gè)目標(biāo)對(duì)象維持著一系列依賴于它的對(duì)象,將有關(guān)狀態(tài)的任何變更自動(dòng)通知觀察者們。在觀察者模式中,觀察者需要直接訂閱目標(biāo)對(duì)象。觀察者與目標(biāo)對(duì)象之間有一定的依賴關(guān)系。

有4個(gè)重要的概念

1>目標(biāo)對(duì)象(被觀察者):維護(hù)一組觀察患者,提供管理觀察者的方法。

2>觀察者:提供一個(gè)更新接口,用于收到通知時(shí),進(jìn)行更新

3>具體目標(biāo)對(duì)象:代表具體的目標(biāo)對(duì)象

4>具體觀察者:代表具體的觀察者

JavaScript常用設(shè)計(jì)模式有哪些

JavaScript常用設(shè)計(jì)模式有哪些

2、發(fā)布、訂閱模式

發(fā)布訂閱模式可以說是觀察這模式的一種變體,一種實(shí)現(xiàn)。它使用一個(gè)主題/事件通道,介于發(fā)布者和訂閱者之間,避免了發(fā)布者和訂閱者之間的依賴關(guān)系。

JavaScript常用設(shè)計(jì)模式有哪些

3、工廠模式


JavaScript常用設(shè)計(jì)模式有哪些 
工廠函數(shù)提供了一個(gè)通用的接口來創(chuàng)建對(duì)象,我們可以指定我們希望常見的對(duì)象類型,我們通知工廠函數(shù)需要什么類型的對(duì)象并提供對(duì)應(yīng)的數(shù)據(jù),返回對(duì)應(yīng)的實(shí)例。 

何時(shí)使用工廠模式

1>當(dāng)我們的對(duì)象比較復(fù)雜的時(shí)候

2>當(dāng)我們需要根據(jù)不同情況創(chuàng)建不同對(duì)象實(shí)例的時(shí)候

3>當(dāng)我們需要?jiǎng)?chuàng)建許多相似對(duì)象的時(shí)候

缺點(diǎn):使用不當(dāng)會(huì)增加程序的復(fù)雜度

4、抽象工廠模式

抽象工廠模式,將對(duì)象的實(shí)現(xiàn)細(xì)節(jié)抽離出來。適用于需要和多種對(duì)象一起工作的場(chǎng)景。


JavaScript常用設(shè)計(jì)模式有哪些 

5、單例模式

單體模式思想在于保證一個(gè)特定類僅有一個(gè)實(shí)例,意味著但當(dāng)你第二次使用同一個(gè)類創(chuàng)建新對(duì)象時(shí),應(yīng)得到和第一次創(chuàng)建對(duì)象完全相同。(限制一個(gè)類只有一個(gè)實(shí)例化對(duì)象。)

JavaScript常用設(shè)計(jì)模式有哪些

6、中介者模式

中介者模式就是提供一個(gè)中心點(diǎn)給系統(tǒng)不同組件之間進(jìn)行通信,降低系統(tǒng)組件之間的耦合程度。

//實(shí)現(xiàn)與發(fā)布/訂閱模式類似

觀察者模式和發(fā)布訂閱模式專注于維護(hù)目標(biāo)對(duì)象和觀察者之間的關(guān)系,當(dāng)主題對(duì)象發(fā)生變化時(shí),通知所有對(duì)改主題感興趣的觀察者。而中介者模式的話,專注于限制對(duì)象的通信必須通過中介者來通信。兩者都提倡耦合。

7、裝飾者模式

裝飾者模式,通過一個(gè)裝飾類對(duì)現(xiàn)有動(dòng)態(tài)添加行為,以及對(duì)原有行為進(jìn)行裝飾。

JavaScript常用設(shè)計(jì)模式有哪些

8、適配器模式

使用一個(gè)新的接口對(duì)現(xiàn)有的接口進(jìn)行包裝,處理數(shù)據(jù)與接口的不匹配

JavaScript常用設(shè)計(jì)模式有哪些

以上是“JavaScript常用設(shè)計(jì)模式有哪些”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI