Gang Of Four的23中設計模式
標籤(空格分隔): 設計模式html
1. 根據目的來進行劃分
根據目的進行劃分能夠分爲建立型模式, 結構型模式和行爲模式三種.算法
1.1 建立型模式
怎樣建立對象, 主要特色是 將對象的建立和使用分離, GoF中提供了單例, 原型, 工廠方法, 抽象工廠, 建造者等5中建立型模式.設計模式
1.2 結構性模式
用於描述如何將類或者對象按照某種佈局組成更大的結構, GoF提供了代理, 適配器, 橋接, 外觀, 享元, 組合等6中結構性模式.佈局
1.3 行爲模式
用於描述類或對象之間如何經過寫做共同完成單個對象沒法完成的任務, 以及怎樣分配職責. GoF中提供了模板方法, 策略, 命令, 職責鏈, 狀態, 觀察者, 中介者, 迭代者, 訪問者, 備忘錄, 解釋器.設計
GoF的23中設計模式的功能(只列出常見的).
- 單例(Singleton)模式: 某個類只能生成一個實例, 該類提供了一個全局訪問點供外部獲取該實例拓展是有限多例模式.
單例模式代碼
- 原型(Prototype)模式: 將一個對象做爲原型, 經過對其進行復制而克隆出多個和原型相似的新實例.
原型模式代碼
- 工廠(Factory)方法: 定義一個用於建立產品的接口, 由子類決定生產什麼產品.
工廠設計模式
抽象工廠(AbstractFactory)模式: 提供一個建立產品族的接口, 其每一個子類能夠生產一系列相關的產品.代理
- 代理(Proxy)模式: 爲某對象提供一種代理以控制對該對象的訪問, 即客戶端經過代理間接的訪問該對象, 從而限制, 加強或者修改該對象的一些特性.
代理模式
- 適配器(Adapter)模式: 將一個類的接口轉換成客戶但願的另外一個接口, 使得本來因爲接口不兼容而不能一塊兒工做的哪些類一塊兒工做.
適配器模式
- 橋接(Bridge)模式: 將抽象和實現分離, 它他們能夠獨立變化, 他們使用組合關係替代竭誠關係來實現, 從而下降了抽象和實現這兩個可變維度的耦合度.
- 裝飾(Decorator)模式: 動態的給對象增長一些功能.
- 享元(Flyweight)模式: 運行共享技術來有效的支持大量細粒度對象的複用.
享元模式
- 策略(Strategy)模式: 定義了一些列的算法, 而且將每一個算法封裝起來, 使他們能夠相互替換, 且算法的改變不會影響使用算法的客戶.
策略模式
模板方法(TemplateMethod)模式:定義一個操做中的算法骨架,而將算法的一些步驟延遲到子類中,使得子類能夠不改變該算法結構的狀況下重定義該算法的某些特定步驟。
模板方法htm