設計模式學習 工廠方法模式

2021-07-28 04:21:17 字數 543 閱讀 2240

工廠方法模式,定義乙個用於建立物件的介面,讓子類決定例項化哪乙個類,工廠方法使乙個類的例項化延遲到了其子類。

之前的簡單工廠模式雖說也非常好,但是在新增和更改生產選項的時候,不得不更改switch和case語句,這點違背了設計模式的開方--封閉的原則。

工廠方法模式,既克服了簡單工廠違背開方--封閉原則的缺點,又保持了封裝物件建立過程的優點。

兩種模式都是集中封裝了物件的建立,使得要更換物件時,不需要做出大的改動就可以實現,降低了客戶程式和產品物件的耦合。工廠方法模式是簡單工廠模式的進一步抽象和推廣。由於使用了多型性,工廠方法模式保持了簡單工廠模式的有點,而且克服了它的缺點。但缺點是由於每加乙個產品,就需要加乙個產品工廠的類,增加了額外的開發量。

#include #include using namespace std;

class leifeng //雷鋒類

學習設計模式 工廠方法模式

說明 工廠方法跟簡單工廠的區別在於簡單工廠方法在構造的時候,通過判斷輸入引數,例項化不同車物件,而工廠方法新增不同車的工廠,客戶端在呼叫的時候控制例項化哪個車工廠。需求 跟簡單工廠模式一樣,要開不同的車 解決方式 a.乙個開車父類,定義乙個開車方法 b.分別定義子類開奧迪車 開賓士車 開寶馬車 繼承...

設計模式學習 工廠方法模式

設計六大原則 簡單工廠模式 上篇學習了簡單工廠模式,簡單工廠模式的優點就是工廠類封裝具體物件的實現邏輯,會根據外部傳入的選擇條件來判斷返回對應的具體物件,也就是呼叫者無需關心內部實現邏輯,只需傳入所需物件的型別即可,同樣的缺點也很明顯,如果要通過工廠類的獲取所需的具體物件,必須在工廠類中的靜態方法先...

設計模式學習 工廠方法模式

工廠方法模式也是乙個很常見 很基礎的設計模式,屬於建立型模式。它遮蔽了建立物件的細節,使用者可以直接使用,而不用去關心具體的實現邏輯。define an inte ce for creating an object,but let subclasses decide which class to i...