摘要:開發(fā)中,我們或多或少地接觸了設(shè)計(jì)模式,但是很多時(shí)候不知道自己使用了哪種設(shè)計(jì)模式或者說該使用何種設(shè)計(jì)模式。本文意在梳理常見設(shè)計(jì)模式的特點(diǎn),從而對它們有比較清晰的認(rèn)知。
開發(fā)中,我們或多或少地接觸了設(shè)計(jì)模式,但是很多時(shí)候不知道自己使用了哪種設(shè)計(jì)模式或者說該使用何種設(shè)計(jì)模式。本文意在梳理常見設(shè)計(jì)模式的特點(diǎn),從而對它們有比較清晰的認(rèn)知。
JavaScript 中常見設(shè)計(jì)模式單例模式
策略模式
代理模式
迭代器模式
發(fā)布-訂閱模式
命令模式
組合模式
模板方法模式
享元模式
職責(zé)鏈模式
中介者模式
裝飾者模式
狀態(tài)模式
適配者模式
觀察者模式
各設(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)建菜單對象 |
策略模式 | 根據(jù)不同參數(shù)可以命中不同的策略 | 動(dòng)畫庫里的算法函數(shù) |
代理模式 | 代理對象和本體對象具有一致的接口 | 圖片預(yù)加載 |
迭代器模式 | 能獲取聚合對象的順序和元素 | each([1, 2, 3], cb) |
發(fā)布-訂閱模式 | PubSub | 瀑布流庫 |
命令模式 | 不同對象間約定好相應(yīng)的接口 | 按鈕和命令的分離 |
組合模式 | 組合模式在對象間形成一致對待的樹形結(jié)構(gòu) | 掃描文件夾 |
模板方法模式 | 父類中定好執(zhí)行順序 | 咖啡和茶 |
享元模式 | 減少創(chuàng)建實(shí)例的個(gè)數(shù) | 男女模具試裝 |
職責(zé)鏈模式 | 通過請求第一個(gè)條件,會(huì)持續(xù)執(zhí)行后續(xù)的條件,直到返回結(jié)果為止 | if else 優(yōu)化 |
中介者模式 | 對象和對象之間借助第三方中介者進(jìn)行通信 | 測試結(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) | 枚舉值接口變更 |
觀察者模式 | 當(dāng)觀察對象發(fā)生變化時(shí)自動(dòng)調(diào)用相關(guān)函數(shù) | vue 雙向綁定 |
*《JavaScript設(shè)計(jì)模式與開發(fā)實(shí)踐》
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/95092.html
摘要:我對知乎前端相關(guān)問題的十問十答張鑫旭張鑫旭大神對知乎上經(jīng)典的個(gè)前端問題的回答。作者對如何避免常見的錯(cuò)誤,難以發(fā)現(xiàn)的問題,以及性能問題和不好的實(shí)踐給出了相應(yīng)的建議。但并不是本身有問題,被標(biāo)準(zhǔn)定義的是極好的。 這一次,徹底弄懂 JavaScript 執(zhí)行機(jī)制 本文的目的就是要保證你徹底弄懂javascript的執(zhí)行機(jī)制,如果讀完本文還不懂,可以揍我。 不論你是javascript新手還是老...
摘要:標(biāo)準(zhǔn)模式的排版和運(yùn)作模式都是以該瀏覽器支持的最高標(biāo)準(zhǔn)運(yùn)行。使用之前需要考慮這兩個(gè)缺點(diǎn)。數(shù)據(jù)的有效期不同。在設(shè)置的過期時(shí)間之前一直有效,即使窗口或者瀏覽器關(guān)閉。僅在瀏覽器窗口關(guān)閉之前有效。 一、HTML常見題目01、Doctype作用?嚴(yán)格模式與混雜模式如何區(qū)分?它們有何意義?02、 HTML5 為什么只需要寫 !DOCTYPE HTML?03、行內(nèi)元素有哪些?塊級元素有哪些?空(voi...
摘要:標(biāo)準(zhǔn)模式的排版和運(yùn)作模式都是以該瀏覽器支持的最高標(biāo)準(zhǔn)運(yùn)行。使用之前需要考慮這兩個(gè)缺點(diǎn)。數(shù)據(jù)的有效期不同。在設(shè)置的過期時(shí)間之前一直有效,即使窗口或者瀏覽器關(guān)閉。僅在瀏覽器窗口關(guān)閉之前有效。 一、HTML常見題目01、Doctype作用?嚴(yán)格模式與混雜模式如何區(qū)分?它們有何意義?02、 HTML5 為什么只需要寫 !DOCTYPE HTML?03、行內(nèi)元素有哪些?塊級元素有哪些?空(voi...
摘要:標(biāo)準(zhǔn)模式的排版和運(yùn)作模式都是以該瀏覽器支持的最高標(biāo)準(zhǔn)運(yùn)行。使用之前需要考慮這兩個(gè)缺點(diǎn)。數(shù)據(jù)的有效期不同。在設(shè)置的過期時(shí)間之前一直有效,即使窗口或者瀏覽器關(guān)閉。僅在瀏覽器窗口關(guān)閉之前有效。 一、HTML常見題目01、Doctype作用?嚴(yán)格模式與混雜模式如何區(qū)分?它們有何意義?02、 HTML5 為什么只需要寫 !DOCTYPE HTML?03、行內(nèi)元素有哪些?塊級元素有哪些?空(voi...
閱讀 2981·2021-11-15 18:02
閱讀 3877·2021-10-14 09:43
閱讀 3866·2021-09-08 10:41
閱讀 2579·2019-08-30 15:53
閱讀 1861·2019-08-30 14:14
閱讀 2014·2019-08-29 16:12
閱讀 3204·2019-08-29 14:03
閱讀 1336·2019-08-29 13:46