創(chuàng)建型模式:
-
抽象工廠
提供一個(gè)創(chuàng)建一系列或相關(guān)依賴對(duì)象的接口抱究,而無需指定他們具體的類。
-
單例
保證一個(gè)類只有一個(gè)實(shí)例涩笤,并且提供一個(gè)訪問它的全局訪問點(diǎn)。
-
工廠方法模式
定義一個(gè)用于創(chuàng)建對(duì)象的接口刽严,讓子類決定實(shí)例化哪一個(gè)類,工廠模式使一個(gè)類的實(shí)例化延遲到子類避凝。
-
建造者模式
將一個(gè)復(fù)雜對(duì)象的構(gòu)建和它的表示分離,使得同樣的構(gòu)建過程可以創(chuàng)建不同的表示管削。
-
原型模式
用原型實(shí)例指定創(chuàng)建對(duì)象的種類,并且通過拷貝這些原型創(chuàng)建新的對(duì)象含思。
結(jié)構(gòu)型模式:
-
代理模式:
為其他對(duì)象提供一種代理以控制對(duì)這個(gè)對(duì)象的訪問。
-
橋接模式:
將抽象部分與他的實(shí)現(xiàn)部分分離饲做,使它們可以獨(dú)立地變化。
-
適配器模式:
將一個(gè)類的接口轉(zhuǎn)換成客戶希望的另外一個(gè)接口盆均,適配器模式使得原本由于接口不兼容而不能在一起工作的那些類可以一起工作。
-
外觀模式:
為子系統(tǒng)中的一組接口提供一個(gè)一致的界面泪姨,外觀模式定義了一個(gè)高層接口,這個(gè)接口使得這一子系統(tǒng)更加容易使用饰抒。
-
享元模式:
運(yùn)用共享技術(shù)有效地支持大量細(xì)粒度的對(duì)象。
-
裝飾模式:
動(dòng)態(tài)地給一個(gè)對(duì)象添加一些額外的職責(zé)唇敞。(就增加功能來說,裝飾模式相比生成子類更加靈活)
-
組合模式:
將對(duì)象組合成樹形結(jié)構(gòu)以表示‘部分-整體’的層次結(jié)構(gòu)疆柔,組合模式使得用戶對(duì)單個(gè)對(duì)象和組合對(duì)象的使用具有一致性。
行為型模式:
-
備忘錄模式
在不破壞封裝性的前提下旷档,捕獲一個(gè)對(duì)象的內(nèi)部狀態(tài),并在該對(duì)象之外保存這個(gè)狀態(tài)歇拆,這樣以后就可將該對(duì)象恢復(fù)到原先保存的狀態(tài)鞋屈。
-
策略模式
定義一系列算法,把它們一個(gè)個(gè)封裝起來厂庇,并且使它們可相互替換渠啊,使得算法可獨(dú)立于使用它的客戶而變化。
-
迭代器模式
提供一種方法順序訪問一個(gè)聚合對(duì)象中各個(gè)元素替蛉,而又不需要暴露該對(duì)象的內(nèi)部表示。
-
訪問者模式
表示一個(gè)作用于某對(duì)象結(jié)構(gòu)中的各元素的操作躲查,它使你可以在不改變各元素的類的前提下定義作用于這些元素的新操作。
-
觀察者模式
定義對(duì)象間的一種一對(duì)多的依賴關(guān)系镣煮,當(dāng)一個(gè)對(duì)象的狀態(tài)發(fā)生變化的時(shí)候,所有依賴于它的對(duì)象都得到通知并被自動(dòng)更新鄙麦。
-
解釋器模式
給定一個(gè)語言,定義他的文法的一種表示黔衡,并定義一個(gè)解釋器蚓聘,這個(gè)解釋器使用該表示來解釋語言中的句子腌乡。
-
命令模式
將一個(gè)請(qǐng)求封裝為一個(gè)對(duì)象,從而使你可用不同的請(qǐng)求對(duì)客戶進(jìn)行參數(shù)化与纽,可以對(duì)請(qǐng)求排隊(duì)或記錄請(qǐng)求日志侣签,以及支持可撤銷的操作。
-
模板方法模式
定義一個(gè)操作的算法骨架影所,而將一些步驟延遲到子類中,模板方法使得子類可以不改變一個(gè)算法的結(jié)構(gòu)即可重定義該算法的某些特定步驟僚碎。
-
職責(zé)鏈模式
使多個(gè)對(duì)象都有機(jī)會(huì)處理請(qǐng)求,從而避免請(qǐng)求的發(fā)送者和接收者之間的耦合關(guān)系勺阐。將這些對(duì)象連成一條鏈卷中,并沿著這條鏈傳遞請(qǐng)求,直到有一個(gè)對(duì)象處理它為止渊抽。
-
中介者模式
用一個(gè)中介對(duì)象來封裝一系列的對(duì)象交互,中介者使各個(gè)對(duì)象不需要顯示地相互引用懒闷,從而使其耦合松散十减,而且可以獨(dú)立地改變它們之間的交互栈幸。
-
狀態(tài)模式
允許一個(gè)對(duì)象在其內(nèi)部狀態(tài)改變時(shí)改變它的行為帮辟,讓對(duì)象看起來似乎修改了它的類速址。