5分鐘利用一首詩(shī)記住23中設(shè)計(jì)模式

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

寫(xiě)程序雖然不能死記硬背,但記憶是無(wú)可避免的,用方法鍛煉下自己的記憶,避免記憶衰退。

記憶23中設(shè)計(jì)模式:

? 靜夜思
床前明月光,疑是地上霜;
舉頭望明月,低頭思故鄉(xiāng)。

0. 簡(jiǎn)單工廠模式(Simple Factory):床

實(shí)現(xiàn)一個(gè)創(chuàng)建對(duì)象的方法,該方法的參數(shù)決定創(chuàng)建的對(duì)象的具體類型。

1. 工廠方法(Factory Method):前

定義一個(gè)用于創(chuàng)建對(duì)象的接口,讓子類決定實(shí)例化哪個(gè)類。工廠方法使一個(gè)類的實(shí)例化延遲到氣子類。

2. 抽象工廠模式(Abstract Factory):明

提供一個(gè)創(chuàng)建一系列相關(guān)或相互依賴對(duì)象的接口,而無(wú)需指定它們具體的類

前三個(gè)基本上是熟爛于心的,因?yàn)榻?jīng)常接觸,也可以記憶“床前明”開(kāi)了三家工廠

3. 單例模式(Singleton):月

保證一個(gè)類僅有一個(gè)實(shí)例,并提供一個(gè)訪問(wèn)它的全局訪問(wèn)點(diǎn)

單身狗無(wú)人配,獨(dú)自望月

4. 創(chuàng)建者模式(Builder):光

將一個(gè)復(fù)雜對(duì)象的創(chuàng)建與它的表示分離,使得同樣的構(gòu)建過(guò)程可以創(chuàng)建不同的表示

錢(qián)用光了,造就完了

5. 原型模式(Prototype):疑

用原型實(shí)例指向創(chuàng)建對(duì)象的種類,并且通過(guò)拷貝這些原型創(chuàng)建新的對(duì)象

孫悟空因?yàn)閼岩裳?,一棒打出原?/p>

6. 適配器模式(Adapter):是

將一個(gè)類的接口轉(zhuǎn)換成客戶希望的另外一個(gè)接口。適配器讓原本接口不兼容的類可以一起工作。

適和是諧音好記

7. 裝飾者模式(Decorator):地

動(dòng)態(tài)地給一個(gè)對(duì)象添加一些額外的職責(zé),就增加功能來(lái)說(shuō),裝飾者模式比添加子類更為靈活

地:大地被白雪覆蓋,銀裝素裹,是最美的裝飾

8. 代理模式(Proxy):上

為其他對(duì)象提供一種代理,以控制對(duì)該對(duì)象的訪問(wèn)

kxsw,只能用代理呀

9. 外觀模式(Facade):霜

提供了一個(gè)統(tǒng)一的接口,用來(lái)訪問(wèn)子系統(tǒng)中的一群接口。外觀模式定義了一個(gè)高層接口,讓子系統(tǒng)共容易使用。

汽車前窗掛了一層霜,外觀上很好,但是遮擋視線

10. 橋接模式(Bridge): 舉

將抽象部分與它的實(shí)現(xiàn)部分分離,使得它們可以獨(dú)立地變化

一個(gè)人舉起一座橋梁

11. 組合模式(Composite):頭

將對(duì)象組合成樹(shù)形結(jié)構(gòu)來(lái)表示“整體/部分”層次結(jié)構(gòu)。組合模式能讓客戶以一致的方式處理單個(gè)對(duì)象和組合對(duì)象。

頭和身子組合了嗎?

12. 享元模式(Flyweight):望

運(yùn)用共享技術(shù)有效地支持大量細(xì)粒度的對(duì)象。

享元(蠅量),蠅子用一雙大眼睛看著你

13. 策略模式(Strategy):明

定義了算法家族,分別封裝起來(lái),使得它們之間可以相互替換,此模式讓算法的變化,不會(huì)影響到使用該算法的客戶。

孔明是策略專家,是個(gè)高明人

14. 模板方法(Template Method):月

定義一個(gè)操作中算法的骨架,而將一些步驟延遲到子類中,模板方法使得子類可以不改變一個(gè)算法的結(jié)構(gòu)即可重定義該算法的某些特定步驟。

月老牽線,用的是模板。

15. 觀察者模式(Observer):低

定義了一種一對(duì)多的依賴關(guān)系,讓多個(gè)觀察者對(duì)象同時(shí)監(jiān)聽(tīng)某個(gè)主題對(duì)象。這個(gè)主題對(duì)象在狀態(tài)發(fā)生變化時(shí),會(huì)通知所有觀察者,使它們能夠自動(dòng)更新自己。

低頭觀察螞蟻運(yùn)大蟲(chóng)

16. 迭代器模式(Iterator):頭

提供一種方法順序訪問(wèn)聚合對(duì)象中各個(gè)元素,而又不暴露該對(duì)象的內(nèi)部表示。

頭被折疊成紙片,奇怪吧

17. 責(zé)任鏈模式(Chain of Responsibility):思

使多個(gè)對(duì)象都有機(jī)會(huì)處理請(qǐng)求,從而避免請(qǐng)求的發(fā)送者和接收者之間的耦合關(guān)系。
將這個(gè)對(duì)象連成一條鏈,并沿著這條鏈傳遞該請(qǐng)求,直到有一個(gè)對(duì)象處理它為止。

打架后被罰站,思考自己的責(zé)任,該打頭還是打臉

18. 命令模式(Command):故

將請(qǐng)求封裝成一個(gè)對(duì)象,從而使你可用不同的請(qǐng)求對(duì)客戶進(jìn)行參數(shù)化;對(duì)請(qǐng)求排隊(duì)或記錄請(qǐng)求日志,以及支持可撤銷的操作。

出事故,領(lǐng)導(dǎo)坐鎮(zhèn)下命令

19. 備忘錄模式(Mememto):鄉(xiāng)

在不破壞封裝性的前提下,捕捉一個(gè)對(duì)象的內(nèi)部狀態(tài),并在該對(duì)象之外保存這個(gè)狀態(tài),這樣以后就可將該對(duì)象恢復(fù)到原先保存的狀態(tài)。

看到備忘錄,想起來(lái)故鄉(xiāng)的秋葉

20. 狀態(tài)模式(State):靜

當(dāng)一個(gè)對(duì)象的內(nèi)在狀態(tài)改變時(shí),允許改變其行為,這個(gè)對(duì)象看起來(lái)像是改變了其類。

靜靜不是個(gè)人名,是想要的一種狀態(tài)

21. 訪問(wèn)者模式(Visitor):夜

表示一個(gè)作用于某對(duì)象結(jié)構(gòu)中的各元素的操作,它使你可以在不改變各元素的類的前提下定義作用于這些元素的新操作。

夜:半夜隔壁老王敲門(mén),不懷好意的訪問(wèn)者

22. 中介者模式(Mediator):思

用一個(gè)中介對(duì)象來(lái)封裝一系列的對(duì)象交互。中介者使各對(duì)象不需要顯式地相互引用,從而使其耦合松散,而且可以獨(dú)立地改變它們之間的交互。

中介者很有思想,兩頭都賺錢(qián)

23. 解釋器模式(Interpreter):李

給定一個(gè)語(yǔ)言,定義它的文法的一種表示,并定義一個(gè)解釋器,這個(gè)解釋器使用該表示來(lái)解釋語(yǔ)言中的句子。

李白你給我解釋下為什么你喝酒就能吟詩(shī)

創(chuàng)建型5種:工廠方法、抽象工廠、單例模式、構(gòu)建者模式、原型模式,這里經(jīng)常提到簡(jiǎn)單工廠模式,不屬于23種設(shè)計(jì)模式

結(jié)構(gòu)型7種:適配器模式、裝飾模式、代理模式、外觀模式、橋接模式、組合模式、享元模式

行為型11種:策略模式、模板方法模式、觀察者模式、迭代器模式、責(zé)任鏈模式、命令模式、備忘錄模式、狀態(tài)模式、訪問(wèn)者模式、中介模式、解釋器模式

?著作權(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)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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