C 工廠方法模式

2021-10-08 20:12:49 字數 1379 閱讀 1220

簡單工廠模式最大的優點就是在於工廠類中,包含了必要的邏輯判斷,根據客戶端的選擇條件動態例項化相關的類,對於客戶端來說,去除了其他不必要的麻煩。

只需要把』+'給工廠,就可以自動出相應的例項,計算結果即可。但是,簡單工廠模式中,我需要新增功能,在抽象中,的確是只需要增加乙個純虛函式,再加乙個實現即可,我覺得不會影響開閉原則啊。

後面發現自己too young了,我需要在switch裡面修改**啊,不僅拓展了開放,還對修改也開放了,違背了開閉原則。

通過今天的工廠方法模式學習,又加深了物件導向設計的了解,越來越發現,這樣寫**實在太舒服了。

class

operation

//乙個運算類,和乙個獲取結果的虛函式

};

對這個運算類,可以衍生多個運算方法的兒子。

class

add:

public operation//加法類繼承父類,重寫虛函式

};

加減乘除。

class

sub:

public operation};

class

mul:

public operation};

class

div:

public operation

else

return a / b;}}

;

下面我要建造乙個抽象工廠了,每個子工廠負責生成乙個單獨的演算法類,需要什麼,就出什麼工廠。

class

factory

//抽象的工廠,不能例項化

;

下面一共是4個工廠,分別生產加減乘除。

class

addfactory

:public factory};

class

subfactory

:public factory};

class

mulfactory

:public factory};

class

divfactory

:public factory

};

下面是客戶端**

int

main()

工廠方法模組實現時,客戶端需要決定例項化哪個工廠來實現運算類,選擇判斷的問題還是存在,只是把內部的邏輯判斷轉移到客戶端罷了。

只是,需要增加功能的時候,本來是修改工廠類,現在只是增加乙個運算類和修改客戶端。

優點是:符合了開閉原則,可拓展性增強

缺點是:增加了客戶端的負擔,**量變大

工廠方法模式 工廠方法模式

工廠方法模式是簡單工廠模式的公升級版,簡單工廠模式不符合設計模式的原則 即 單一職責,開閉原則 優點 職責明確,擴充套件方便 缺點 需要建立多個工廠 實現步驟 1.將工廠通用方法抽取介面 例如 ifactory 2.將產品抽取介面 例如 icar 3.實現各種產品 例如 baomacar,benti...

C 工廠模式 工廠方法

簡單工廠 工廠模式 簡單工廠,工廠方法,抽象工廠三種.工廠方法 力求簡潔 工廠即為生產東西的地方.在c 也有這種模式,充分利用了物件導向語言的三大特徵 多型,繼承 簡單工廠.工廠的功能就是生產,而生產些什麼呢?乙個工廠可以生產鞋子,生產衣服.它們所處的車間不一樣,所以需要兩個不同的類,這兩個類繼承工...

C 工廠方法模式

工廠方法 factorymethod 模式是類的建立模式,其用意是定義乙個建立產品物件的工廠介面,將實際建立工作推遲到子類中。工廠方法模式是簡單工廠模式的進一步抽象和推廣。由於使用了多型性,工廠方法模式保持了簡單工廠模式的優點,而且克服了它的缺點。在工廠方法模式中,核心的工廠類不再負責所有產品的建立...