23種設計模式


1、單例模式(Singleton Pattern)

類型:創造類

描述:確保某一個類只有一個實例,而且自行實例化並且向整個系統提供這個實例

    圖示:

2、工廠方法模式(Factory Method Pattern)

類型:創造類

描述:定義一個用於創建對象的接口,讓子類決定實例化哪一個類。工廠方法模式使一個類的實例化延遲到其子類。

    圖示:

3、抽象工廠模式(Abstract Factory Pattern)

類型:創造類

描述:爲創建一組相關或相互依賴的對象提供一個接口,而且無需指定它們的具體類。

    圖示:

4、創造者模式(Builder Pattern)

類型:創造類

描述:使一個複雜對象的創建和它的表示相分離,使得同樣的構建過程可以創建不同的表示。

    圖示:

5、原型模式(Prototype Pattern)

類型:創造類

描述:用原型實例指定創建對象的種類,並且通過拷貝這些原型創建新的對象。

    圖示:

6、迭代器模式(Iterator Pattern)

類型:創造類

描述:提供一種方法訪問一個容器對象中各個元素,而又不需要暴露該對象的內部細節。

    圖示:

7、命令模式(Command Pattern)

類型:行爲類

描述:把一個請求或操作封裝在命令對象中。命令模式允許系統使用不同的請求把客戶端參數化,對請求排隊或記錄請求日誌,可以提供命令的撤銷和恢復功能。

    圖示:

8、解釋器模式(Interpreter Pattern)

類型:行爲類

描述:給定一種語言,定義它的文法的一種表示,並定義一個解釋器,該解釋器使用該表來解釋語言中的句子。

    圖示:

9、責任鏈模式(Chain of Responsibility Pattern)

類型:行爲類

描述:使多個對象都有機會處理請求,從而避免了請求的發送者和接受者之間的耦合關係。將這些對象連成一條鏈,並沿着這條鏈傳遞該消息,直到有對象處理它爲止。

    圖示:

10、    觀察者模式(ObserverPattern)

類型:行爲類

描述:定義對象間一種一對多的依賴關係,使得每當一個對象改變狀態,則所有依賴它的對象都會得到通知並被自動更新。

    圖示:

11、    中介者模式(MediatorPattern)

類型:行爲類

描述:用一箇中介對象封裝一系列的對象交互,中介者使各對象不需要顯示地相互作用,從而使其耦合鬆散,而且可以獨立的改變它們之間的交互。

    圖示:

12、    備忘錄模式(MementoPattern)

類型:行爲類

描述:在不破壞封裝性的前提下,捕獲一個對象的內部狀態,並在該對象對外保存這個狀態。這樣以後就可以將該對象恢復到原先保存的狀態。

    圖示:

13、    狀態模式(State Pattern)

類型:行爲類

描述:當一個對象的內在狀態改變時允許其改變行爲,這個時候看起來像是改變了其類。

    圖示:


14、    策略模式(StrategyPattern)

類型:行爲類

描述: 定義一組算法,將每個算法都封裝起來,並且使它們之間可以交換。

    圖示:

15、    模版方法模式(TemplateMethod Pattern)

類型:行爲類

描述: 定義一個操作中的算法的骨架,而將一些步驟延遲到子類中。使得子類可以不改變一個算法的結構即可重定義該算法的某些特定步驟。

    圖示:

16、    訪問者模式(VisitorPattern)

類型:行爲類

描述:封裝一些作用於某種數據結構中的各元素的操作,它可以在不改變數據結構的前提下定義作用於這些元素的新的操作。

    圖示:

17、    適配器模式(AdapterPattern)

類型:結構類

描述:將一個類的接口變換成客戶端所期待的另一種接口,從而使原本因藉口不匹配而無法在一起工作的兩個類能夠在一起工作。

    圖示:

18、    組合模式(CompositePattern)

類型:結構類

描述:將對象組合成樹形結構以表示“部分-整體”的層次結構,使得用戶對當個對象和組合對象的使用具有一致性。

    圖示:

19、    代理模式(Proxy Pattern)

類型:結構類

描述:爲其他對象提供一種代理以控制對這個對象的訪問。

    圖示:

20、    橋樑模式(Bridge Pattern)

類型:結構類

描述:將抽象和實現解除耦合,使得兩者可以獨立的變化。

    圖示:

21、    裝飾模式(DecoratorPattern)

類型:結構類

描述:動態的給一個對象添加一些額外的職責。就增加功能來說,它相比生成子類更加靈活。

    圖示:

22、    門面模式(Façade Pattern)

類型:結構類

描述:要求一個子系統的外部與其內部的通信必須經過一個統一的對象進行。門面模式提供一個高層次的接口,使得子系統更易於使用。

    圖示:


23、    享元模式(FlyweighPattern)

類型:結構類

描述:使用共享對象可有效的支持大量的細類度的對象。

    圖示:

 

發佈了30 篇原創文章 · 獲贊 9 · 訪問量 9萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章