GoF设计模式概括
| 類模式 | ?工廠方法模式 | ?(類)適配器模式 | ?解釋器模式 ?模板方法模式 |
| 對象模式 | ?抽象工廠模式 ?建造者模式 ?原型模式 ?單例模式 | ?(對象)適配器模式 ?橋接模式 ?組合模式 ?裝飾模式? ?外觀模式? ?享元模式 ?代理模式 | ?職責鏈模式 ?命令模式 ?迭代器模式 ?中介者模式 ?備忘錄模式 ?觀察者模式 ?狀態模式? ?策略模式 ?訪問者模式 |
簡要說明:
創建型模式Creational Patterns
- 抽象工廠模式abstract factory:提供了一個創建一系列相關或互相依賴對象的接口,而無須指定他們具體的類;
- 建造者模式builder:將一個復雜對象的構建與它的表示分離,使得同樣的構建過程可以創建不同的表示;
- 工廠方法模式factory method:將類的實例化操作延遲到子類中完成,即由子類來決定究竟應該實例化(創建)哪一個類;
- 原型模式prototype:通過給出一個原型對象來指明所要創建的對象的類型,然后通過復制這個原型對象的辦法創建出更多同類型的對象;
- 單例模式singleton:確保在系統中某一個類只有一個實例,而且自行實例化并向整個系統提供這個實例;
- 適配器模式adapter:將一個接口轉換成客戶希望的另一個接口,從而使接口不兼容的那些類可以一起工作;
- 橋接模式bridge:將抽象部分與它的實現部分分離,使它們都可以獨立地變化;
- 組合模式composite通過組合多個對象形成樹形結構以表示“整體-部分”的結構層次,對單個對象(即葉子對象)和組合對象(即容器對象)的使用具有一致性;
- 裝飾模式decorator動態地給一個對象增加一些額外的職責;
- 外觀模式facade:為復雜子系統提供一個一致的接口;
- 享元模式flyweight通過運用共享技術有效地支持大量細粒度對象的復用;
- 代理模式proxy:給某一個對象提供一個代理,并由代理對象控制對原對象的引用;
- 職責鏈模式chain of responsibility:避免請求發送者與接收者耦合在一起,讓多個對象都有可能接收請求,將這些對象連接成一條鏈,并且沿著這條鏈傳遞請求,直到有對象處理它為止;
- 命令模式command:將一個請求封裝為一個對象,從而使得請求調用者和請求接收者解耦;
- 解釋器模式interpreter:描述如何為語言定義一個文法,如何在該語言中表示一個句子,以及如何解釋這些句子;
- 迭代器模式iterator:提供了一種方法來訪問聚合對象,而不用暴露這個對象的內部表示;
- 中介者模式mediator:通過一個中介對象來封裝一系列的對象交互,使得各對象不需要顯式地相互引用,從而使其耦合松散,而且可以獨立地改變它們之間的交互;
- 備忘錄模式memento:在不破壞封裝的前提下,捕獲一個對象的內部狀態,并在該對象之外保存這個狀態,這樣可以在以后將對象恢復到原先保存的狀態;
- 觀察者模式observer:定義了對象間的一種一對多依賴關系,使得每當一個對象狀態發生改變時,其相關依賴對象皆得到通知并被自動更新;
- 狀態模式state:允許一個對象在其內部狀態改變時改變它的行為;
- 策略模式strategy:定義一系列算法,并將每一個算法封裝在一個類中,并讓它們可以相互替換,策略模式讓算法獨立于使用它的客戶而變化;
- 模板方法模式template method:定義一個操作中算法的骨架,而將一些步驟延遲到子類中;
- 訪問者模式visitor:表示一個作用于某對象結構中的各元素的操作,它使得用戶可以在不改變各元素的類的前提下定義作用于這些元素的新操作。
總結
- 上一篇: 866. 试除法判定质数
- 下一篇: csdb