重學設計模式 Factory Method模式

2021-06-06 14:41:28 字數 780 閱讀 4938

1、意圖

定義乙個建立物件的介面,讓子類決定例項化哪乙個類。factory method模式使乙個類的例項化延遲到子類。

2、問題

乙個類需要例項化另乙個類的派生類。但不知道是哪乙個。factory method允許派生類進行決策。

3、解決方案

派生類對例項化哪個類和如何例項化做出決策。

4、通用結構

5、參與者

6、協作

creator依賴於它的子類來定義工廠方法,所以它返回乙個適當的concreteproduct例項。

7、效果

客戶將需要派生creator,以建立乙個特定的concreteproduct物件。

8、實現

1)creator類是乙個抽象類,在creator中宣告乙個工廠方法的抽象實現。(c++純虛函式)

2)creator類是乙個具體類,為工廠方法提供乙個預設的實現,或者是乙個定義預設實現的抽象類。

3)引數化工廠方法,使得工廠方法可以建立多種產品。

4)使用模板,避免建立子類。

重學設計模式 Adapter模式

adapter就是乙個目標不能直接拿來使用,需要轉換。如電源介面卡 設計模式 一書中對adapter模式的意圖是這樣敘述的 將乙個類的介面轉換成客戶希望的另外乙個介面。adapter模式使原本由於介面不相容而不能一起工作的類可以一起工作。使控制範圍之外的乙個原有物件與某個介面匹配 問題 系統的資料和...

重學設計模式 Prototype模式

1 意圖 2 問題 3 解決方案 4 通用結構 5 參與者 6 協作 7 效果 8 實現 1 使用乙個原型管理器 當乙個系統中原型數目不固定時 以動態建立和銷毀 要保持乙個可用原型的登錄檔。客戶不會自己來管理原型,但會在登錄檔中儲存和檢索原型。客戶在轉殖乙個原型前會向登錄檔請求該原型,這個登錄檔為原...

重學設計模式(九) 訪問者模式

訪問者模式 visitor pattern 屬於物件行為型模式的一種,表示乙個作用於其物件結構中的各元素的操作,它可以在不改變各元素類的前提下定義作用於這些元素的新操作。可以這麼說,訪問者模式算是 gof 23 中設計模式中最複雜的乙個,在實際開發中,使用不是非常廣泛。訪問者模式的類圖如下,我們先來...