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

image

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

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

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

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

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

參考文獻(xiàn)

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

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

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

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