設(shè)計(jì)模式在開(kāi)發(fā)中經(jīng)常用到旺聚,在對(duì)一個(gè)項(xiàng)目织阳,模塊設(shè)計(jì)的時(shí)候,加以運(yùn)用會(huì)讓開(kāi)發(fā)過(guò)程更順暢砰粹;
這里總結(jié)一下唧躲,總的類(lèi)別:
創(chuàng)建型模式造挽,共五種:工廠方法模式、抽象工廠模式弄痹、單例模式饭入、建造者模式、原型模式肛真。(這里多一種簡(jiǎn)單工廠就沒(méi)寫(xiě)了)
結(jié)構(gòu)型模式谐丢,共七種:適配器模式、裝飾器模式蚓让、代理模式乾忱、外觀模式、橋接模式历极、組合模式窄瘟、享元模式。
行為型模式趟卸,共十一種:策略模式蹄葱、模板方法模式、觀察者模式锄列、迭代子模式图云、責(zé)任鏈模式、命令模式邻邮、備忘錄模式琼稻、狀態(tài)模式、訪問(wèn)者模式饶囚、中介者模式帕翻、解釋器模式。
- 簡(jiǎn)單工程模式
最簡(jiǎn)單的工程模式
- 策略模式
具體的實(shí)現(xiàn)過(guò)程放在策略類(lèi)里萝风,客戶(hù)端通過(guò)工廠模式取一個(gè)策略進(jìn)行執(zhí)行嘀掸;
- 裝飾模式
裝飾類(lèi)也是實(shí)現(xiàn)對(duì)象接口,并持有一個(gè)真實(shí)對(duì)象规惰;
客戶(hù)端調(diào)用的時(shí)候睬塌,在真實(shí)對(duì)象的函數(shù)實(shí)現(xiàn)外,再包裝一層歇万。
- 代理模式
和裝飾模式其實(shí)差不多揩晴,但是意義不同。這個(gè)是實(shí)現(xiàn)代理的贪磺;
- 工廠方法模式
不同的類(lèi)有不同的工廠
- 原型模式(其實(shí)就是clone一個(gè)對(duì)象)
- 模版方法模式(其實(shí)就是繼承一個(gè)對(duì)象)
- 外觀模式 (就是對(duì)一個(gè)系統(tǒng)類(lèi)的子接口提供一個(gè)統(tǒng)一的出口服務(wù)硫兰,客戶(hù)端不需要知道里面的具體類(lèi)別)
- 建造者模式
先生成一個(gè)builder,然后通過(guò)builder來(lái)創(chuàng)建一個(gè)對(duì)象寒锚。
然后builder 的build組裝過(guò)程一般放在一個(gè)單獨(dú)的Director類(lèi)里劫映。
客戶(hù)端使用的話违孝,使用Director類(lèi)型
- 觀察者模式
就是注冊(cè)監(jiān)聽(tīng)一個(gè)事件,得到通知的時(shí)候泳赋,通知所有觀察者
- 抽象工廠模式
兩套工程雌桑,每套工程都會(huì)生成對(duì)應(yīng)的組建;
- 狀態(tài)模式
一個(gè)Context維護(hù)一組狀態(tài)類(lèi)祖今,通過(guò)內(nèi)部狀態(tài)來(lái)選某一個(gè)狀態(tài)類(lèi)執(zhí)行函數(shù)
- 適配器模式 (兩組接口對(duì)不上的時(shí)候屿储,加一個(gè)中間adapter類(lèi)來(lái)轉(zhuǎn)換)
- 備忘錄模式(就是對(duì)某些信息進(jìn)行存儲(chǔ))
- 組合模式
樹(shù)形結(jié)構(gòu)击你; 非葉結(jié)點(diǎn)可以增加刪除下面的節(jié)點(diǎn)疹味,形成一個(gè)樹(shù)塞颁;
- 迭代器模式(就是一個(gè)for)
- 單例模式
雙層鎖
static
enum
- 橋接模式(就是把抽象與實(shí)現(xiàn)剝離,系統(tǒng)可能有多角度大渤,每一個(gè)分類(lèi)都可能變化,那就把他們分離出來(lái)讓她們單獨(dú)變化)
- 命令模式
客戶(hù)端 選擇一個(gè)命令掸绞,然后命令類(lèi)去接下來(lái)執(zhí)行泵三;
- 職責(zé)鏈模式
一個(gè)執(zhí)行,設(shè)置成一個(gè)鏈衔掸。降低了耦合度
- 中介者模式 (所有人的通信通過(guò)一個(gè)中間對(duì)象烫幕,像服務(wù)端server)
- 享元模式
有點(diǎn)像單例模式,工廠中存一個(gè)map敞映,如果需要點(diǎn)類(lèi)型存在了较曼,就不新創(chuàng)建了
- 解釋器模式
用于對(duì)一種文法活著表達(dá)對(duì)解析
- 訪問(wèn)者模式
訪問(wèn)者模式適用于數(shù)據(jù)結(jié)構(gòu)相對(duì)穩(wěn)定算法又易變化的系統(tǒng)。因?yàn)樵L問(wèn)者模式使得算法操作增加變得容易振愿。若系統(tǒng)數(shù)據(jù)結(jié)構(gòu)對(duì)象易于變化捷犹,經(jīng)常有新的數(shù)據(jù)對(duì)象增加進(jìn)來(lái),則不適合使用訪問(wèn)者模式冕末。
即Element不能經(jīng)常變換萍歉;