設計模式學習筆記(總結篇 模式分類)

2022-03-25 17:28:07 字數 1852 閱讀 1837

gof根據模式的目標將模式分為三個類目:建立型、行為型和結構型。

建立型模式設計物件的例項化,這類模式的特點是,不讓使用者依賴於物件的建立或排列方式,避免使用者直接使用new運算子建立物件。

gof的

23中模式中的下列

5種模式屬於建立型模式:

(1)工廠方法模式:定義乙個用於建立物件的介面,讓子類決定例項化哪乙個類。factory method使乙個類的例項化延遲到其子類。

(2)抽象工廠模式:提供乙個建立一系列或相互依賴物件的介面,而無須指定它們具體的類。

(3)生成器模式:將乙個複雜物件的建立與它的表示分離,使得同樣的建立過程可以建立不同的表示。

(4)原型模式:將原型例項指定建立物件的種類,並且通過複製這些原型建立新的物件。

(5)單件模式:保證乙個類僅有乙個例項,並提供乙個訪問它的全域性訪問點。

行為模式涉及怎樣合理地設計物件之間的互動通訊,以及怎樣合理為物件分配職責,讓設計富有彈性,易維護和易復用。

gof的

23種模式中的下列

11種模式屬於建立型模式:

(1)責任鏈模式:使多個物件都有機會處理請求,從而避免請求的傳送者和接收者之間的耦合關係。將這些物件連成一條鏈,並沿著這條鏈傳遞該請求,直到有乙個物件處理它為止。

(2)命令模式:將乙個請求封裝為乙個物件,從而可用不同的請求對客戶進行引數化;對請求排隊或記錄請求日誌,以及支援可撤銷的操作。

(3)直譯器模式:給定乙個語言,定義它文法的一種表示,並定義乙個直譯器,這個直譯器使用該表示來解釋語言中的句子。

(4)迭代器模式:提供一種方法順序訪問乙個聚合物件中的各個元素,而又不需要暴露該物件的內部表示。

(5)中介者模式:用乙個中介物件來封裝一系列的物件互動。中介者使各物件不需要顯示地相互引用,從而使其耦合鬆散,而且可以獨立地改變它們之間的互動。

(6)備忘錄模式:在不破壞封裝性的情況下,捕獲乙個物件的內部狀態,並在該物件之外儲存這個狀態,這樣以後就可將該物件恢復到原先儲存的狀態。

(7)觀察者模式:定義物件間的一種一對多的依賴關係,當乙個物件的狀態發生變化時,所有依賴於它的物件都得到通知並被自動更新。

(8)狀態模式:允許乙個物件在其內部狀態改變時改變它的行為。物件看起來似乎修改了它的類。

(9)策略模式:定義一系列演算法,把它們乙個個封裝起來,並且可使它們可以相互替換。策略模式使演算法可獨立於使用它的客戶而變化。

(10)模板方法模式:定義乙個操作中演算法的骨架,而將一些步驟延遲到子類中。模板方法使子類可以不改變乙個演算法的結構即可定義該演算法的某些特定步驟。

(11)訪問者模式:表示乙個作用於某物件結構中的各個元素的操作。它可以在不改變各個元素的類的前提下定義作用於這些元素的新操作。

結構型模式涉及如何組合類和物件以形成更大的結構,和類有關的結構型模式設計如何合理地使用繼承機制;和物件有關的結構型模式涉及如何合理地使用物件組合機制。

gof的

23種模式中的下列

7種模式屬於建立型模式:

(1)介面卡模式:將乙個類的介面轉換成客戶希望的另外乙個介面。adapter模式使原本由於介面不相容而不能一起工作的那些類可以一起工作。

(2)組合模式:將物件組合成數形結構以表示」部分-

整體「的層次結構。

composite

使使用者對單個物件和組合物件的使用具有一致性。

(3)**模式:為其他物件提供一種**以控制對這個物件的訪問。

(4)享元模式:運用共享技術有效地支援大量細粒度的物件。

(5)外觀模式:為系統的一組介面提供乙個一致的介面,外觀模式定義了乙個高層介面,這個介面使這一子系統更加容易使用。

(6)橋接模式:將抽象部分與它的實現部分分離,使它們都可以獨立地變化。

(7)裝飾模式:動態地給物件新增一些額外的職責,就功能來說裝飾模式相比生成子類更為靈活。

設計模式總結之模式分類

話說這個世界還是混沌之時,盤古掄起一把大斧,開闢了天與地,從此,這個世界有天有地,萬事萬物在這個世界才慢慢發展起來。話說軟體江湖還是混沌之時,無門無派,無招無式,gof gang of four,四個大師 窮理之熟,融會貫通,合著了 design patterns elements of reusa...

設計模式分類 學習筆記

設計模式分類 經典的 設計模式 一書歸納出23種設計模式,本文按 易學設計模式 一書歸納分類如下 1 建立型模式 前面講過,社會化的分工越來越細,自然在軟體設計方面也是如此,因此物件的建立和物件的使用分開也就成為了必然趨勢。因為物件的建立會消耗掉系統的很多資源,所以單獨對物件的建立進行研究,從而能夠...

設計模式總結篇

一 建立型模式 singleon模式 解決的是實體物件個數的問題。除了singleton之外,其它建立型模式解決的都是new所帶來的耦合關係。factory method absract factory builder都需要乙個額外的工廠類來負責例項化 易變物件 而protorty則是通過原型 乙個...