JavaScript 中常見設(shè)計(jì)模式整理

image

開發(fā)中,我們或多或少地接觸了設(shè)計(jì)模式,但是很多時(shí)候不知道自己使用了哪種設(shè)計(jì)模式或者說該使用何種設(shè)計(jì)模式。本文意在梳理常見設(shè)計(jì)模式的特點(diǎn),從而對(duì)它們有比較清晰的認(rèn)知。

JavaScript 中常見設(shè)計(jì)模式

各設(shè)計(jì)模式關(guān)鍵詞

看完了上述設(shè)計(jì)模式后,把它們的關(guān)鍵詞特點(diǎn)羅列出來,以后提到某種設(shè)計(jì)模式,進(jìn)而聯(lián)想相應(yīng)的關(guān)鍵詞和例子,從而心中有數(shù)。

設(shè)計(jì)模式 特點(diǎn) 案例
單例模式 一個(gè)類只能構(gòu)造出唯一實(shí)例 創(chuàng)建菜單對(duì)象
策略模式 根據(jù)不同參數(shù)可以命中不同的策略 動(dòng)畫庫(kù)里的算法函數(shù)
代理模式 代理對(duì)象和本體對(duì)象具有一致的接口 圖片預(yù)加載
迭代器模式 能獲取聚合對(duì)象的順序和元素 each([1, 2, 3], cb)
發(fā)布-訂閱模式 PubSub 瀑布流庫(kù)
命令模式 不同對(duì)象間約定好相應(yīng)的接口 按鈕和命令的分離
組合模式 組合模式在對(duì)象間形成一致對(duì)待的樹形結(jié)構(gòu) 掃描文件夾
模板方法模式 父類中定好執(zhí)行順序 咖啡和茶
享元模式 減少創(chuàng)建實(shí)例的個(gè)數(shù) 男女模具試裝
職責(zé)鏈模式 通過請(qǐng)求第一個(gè)條件,會(huì)持續(xù)執(zhí)行后續(xù)的條件,直到返回結(jié)果為止 if else 優(yōu)化
中介者模式 對(duì)象和對(duì)象之間借助第三方中介者進(jìn)行通信 測(cè)試結(jié)束告知結(jié)果
裝飾者模式 動(dòng)態(tài)地給函數(shù)賦能 天冷了穿衣服,熱了脫衣服
狀態(tài)模式 每個(gè)狀態(tài)建立一個(gè)類,狀態(tài)改變會(huì)產(chǎn)生不同行為 電燈換擋
適配者模式 一種數(shù)據(jù)結(jié)構(gòu)改成另一種數(shù)據(jù)結(jié)構(gòu) 枚舉值接口變更

參考文獻(xiàn)

*《JavaScript設(shè)計(jì)模式與開發(fā)實(shí)踐》

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容