說簡單工廠模式時,我們講到,如果需要新增乙個乘法運算子應該怎麼做的問題,解決這個問題,需要用到工廠方法模式。
工廠方法模式,定義乙個用於建立物件的介面,讓子類決定例項化哪乙個類。工廠方法使乙個類的例項化延遲到其子類,結構圖如下
**實現如下
#includeusing namespace std;
class product
;class creator
;class concreteproduct:public product
現在再想想之前提出的問題,加法類,減法類,乘法類都是繼承operation(相當於product),我們需要新建乙個抽象工廠類(相當於creator),然後依次為加法類、減法類、乘法類,生成工廠類。
#includeusing namespace std;
class operation
int getnumbera()
int getnumberb()
virtual int getresult()=0; //讓子類去實現這個純虛函式,不同的運算子實現不同的操作結果
private:
int numbera;
int numberb;
};class operationadd:public operation
int getresult() };
class operationsub:public operation
int getresult() };
class operationmul:public operation
int getresult() };
class operationfactory
;class addfactory:public operationfactory
};class subfactory:public operationfactory
};class mulfactory:public operationfactory
};int main()
{ operationfactory* fac=new addfactory();
operation* operation=fac->createoperation(1,2);
cout
設計模式C 描述 工廠方法模式
工廠方法模式是類的建立模式,又叫做虛擬構造子模式或多型性工廠模式。它的用意是定義乙個建立產品物件的工廠介面,將實際建立工作推遲到子類中。簡單工廠模式的缺點 由於工廠類集中了所有產品建立邏輯的,如果不能正常工作的話會對系統造成很大的影響。如果增加新產品必須修改工廠角色的原始碼。工廠方法模式的優點 在工...
工廠方法模式 工廠方法模式
工廠方法模式是簡單工廠模式的公升級版,簡單工廠模式不符合設計模式的原則 即 單一職責,開閉原則 優點 職責明確,擴充套件方便 缺點 需要建立多個工廠 實現步驟 1.將工廠通用方法抽取介面 例如 ifactory 2.將產品抽取介面 例如 icar 3.實現各種產品 例如 baomacar,benti...
C 工廠模式 工廠方法
簡單工廠 工廠模式 簡單工廠,工廠方法,抽象工廠三種.工廠方法 力求簡潔 工廠即為生產東西的地方.在c 也有這種模式,充分利用了物件導向語言的三大特徵 多型,繼承 簡單工廠.工廠的功能就是生產,而生產些什麼呢?乙個工廠可以生產鞋子,生產衣服.它們所處的車間不一樣,所以需要兩個不同的類,這兩個類繼承工...