設計模式分組

Gof設計模式菱中的23種設計模式分爲3組:建立型(Creational)、結構型(Structural)和行爲型(Behavioral)。算法

 

1、建立型(Creational)設計模式

建立型模式處理對象構造和引用。它們將對象實例的實例化責任從客戶代碼中抽象出來,從而讓代碼保持鬆散耦合,將建立複雜對象的責任放在一個地方,這遵循了單一責任原則和分離關注點原則。ui

 

一、Abstrct Factory(抽象工廠)模式:提供一個接口來建立一組相關的對象。設計

二、Factory Method(工廠方法)模式:支持使用一個類來委託建立有效對象的責任。代理

三、Builder(生成器)模式:將對象自己的構造分離出來,從而可以構造對象的不一樣版本。server

四、Prototype(原型)模式:可以從一個原型實例來複制或克隆類,而不是建立新實例。對象

五、Singleton(單例)模式:支持一個類只實例化一次,並只有一個可用來訪問它的全局訪問點。接口

 

2、結構型(Structural)原型

結構型模式處理對象的組合與關係,以知足大型系統的須要。it

 

一、Adapter(適配器)模式:使不兼容接口的類可以一塊兒使用。

二、Bridge(橋接)模式:將抽象與其實例分享,容許實現和抽象彼此獨立的改變。

三、Composite(組合)模式:能夠像動態包裝一個類並擴展其行爲。

四、Decorator(裝飾)模式:可以動態包裝一個類並擴展其行爲。

五、Facade(門面)模式:提供一個簡單的接口並控制對一組複雜接口和子系統的訪問。

六、Flyweight(享元)模式:提供一種在許多小類之間高效共享數據的方式。

七、Proxy(代理)模式:爲一個實例化成本很高的更復雜的類提供一個佔位符。

 

3、行爲型(Behavioral)

行爲型模式處理對象之間在責任和算法方面的通訊。這個分組中的模式將複雜行爲封裝起來並將其從系統控制流中抽象出來,這樣就使複雜系統更容易維護 和理解。

 

一、Chain of Responsibility(責任鏈)模式:容許將命令動態連接起來處理請求。

二、Command(命令)模式:將一個方法封裝成一個對象,並將該命令的執行與它的調用者分享。

三、Interpreter(解析器)模式:指定如何執行某種語言中的語句。

四、Iterator(迭代器)模式:提供以形式化的方式來導航集合的方法。

五、Mediator(中介者)模式:定義一個對象,可讓其餘兩個對象進行通訊而沒必要讓它們知道彼此的存在。

六、Memento(備忘錄)模式:容許將對象恢復至之前的狀態。

七、Observer(觀察者)模式:定義一個或多個類在另外一個類發生變化時接到報警。

八、State(狀態)模式:容許對象經過委託給獨立的、可改變的狀態對象來改變本身的行爲。

九、Strategr(策略)模式:可以將算法封裝至一個類中並在運行時轉換,以改變對象的行爲。

十、Template Method(模板方法)模式:定義算法流程控制,但容許子類重寫或實現執行步驟。

十一、Visitor(訪問者)模式:可以在類上執行新的功能而不影響類的結構。

相關文章
相關標籤/搜索