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 中設計模式中最複雜的乙個,在實際開發中,使用不是非常廣泛。訪問者模式的類圖如下,我們先來...