設計型樣種類包含顯示部分經典「四人幫」(Gang of Four) 型樣的設計型樣。
型樣 | 目的 |
---|---|
Decorator | Decorator 型樣動態加入任務到物件,而不需要變更其介面。Decorator 型樣是作為 wrapper,因為它實作原始介面、新增功能及委派工作給原始物件。「架構探索」(Architectural Discovery) 演算法將這個型樣識別為兩個類別的構成元素︰「裝飾元」(Decorator) 和包裝過的「元件」(Component)。 |
Factory 方法 | Factory 方法型樣定義建立物件的介面。每一個 Factory 方法型樣可以定義根據輸入參數和特定狀況來建立哪一個類別的實例。「架構探索」(Architecture Discovery) 演算法將這個型樣識別為由 Creator、Concrete Creator、Product 和 Concrete Product 所構成。Creator 指定建立 Product 的介面。Concrete Creator 藉由實例化 Concrete Product 來實作這個介面。 |
Marker | Marker 型樣宣告類別的語意屬性。「架構探索」演算法將 Marker 識別為無方法或常數的一個空介面。 |
Observer/Observable | Observer/Observable 型樣將物件狀態的變更傳播給其他系統物件。「架構探索」演算法將這個型樣識別為 Observer 和 Observable 的構成元素。Observable 類別維護 Observer 類別的清單,當狀態變更時會通知這些類別。 |
Singleton | Singleton 型樣可確保類別僅允許一個物件實例。「架構探索」演算法將 Singleton 識別為具有 private 建構子與提供對 Singleton 實例的廣域存取的 public static 欄位或方法的類別。 |
Utility | Utility 型樣建立無狀態公用程式函數的模型。「架構探索」演算法將 Utility 識別為具有僅包含一個 static 方法的 private 建構子的類別。 |
Visitor | Visitor 型樣對物件結構的元素執行特定的作業。Visitor 型樣允許不變更其操作之元素的類別就能進行其他作業。「架構探索」演算法將 Visitor 型樣識別為 Visitor、Concrete Visitor、Element(選用)和 Concrete Element 的構成元素。Visitor 是宣告每個元素 Visit 作業的介面。Concrete Visitor 實作 Visitor 介面並處理每一個 Concrete Element。 |