簡單工廠模式的c 版本

2021-08-03 16:57:02 字數 1708 閱讀 4606

研究了一下大話設計模式,順手吧簡單工廠模式的c++版本寫出來了,放上來分享一下

/*簡單工廠模式

*by [email protected] 2023年7月11日

*/#include #include using namespace std;

//基礎操作類,加法類,減法類,乘法類,除法類的父類

class operation

double get_num_b()

void set_num_a(double a)

void set_num_b(double b)

//虛函式

virtual double getresult()

private:

double _number_a;

double _number_b;

};//加法類

class operationadd:public operation

};//減法類

class operationsub:public operation

};//乘法類

class operationmul:public operation };

class operationdiv:public operation

double result = get_num_a() / get_num_b();

return result;

}};//工廠類,根據運算子的不同創造不同的例項

class operationfactory

else if("-" == oper)

else if("*" == oper)

else

}//建立例項函式,根據操作符返回相應的操作operation類的指標

operation *createoperate(string operate)

return oper;

}};int main()

{ //建立乙個運算類的指標

operation *oper;

//建立乙個工廠類的例項

operationfactory create;

//接受工廠類返回的不同操作類的位址

oper = create.createoperate("+");

//設定兩個數

oper->set_num_a(9.154);

oper->set_num_b(11.3);

//完成運算

double result = oper->getresult();

cout<<"9.154+11.3="《結果輸出

$ g++ factory.cpp -std=c++11

$ ./a.out

9.154+11.3=20.454

工廠模式的優缺點(摘自《設計模式》):

優點:1.它分離了具體的類,將客戶與類的實現分離.產品類名也在具體的工廠的實現中被分離;它們不會出現在客戶**中.

2.它使得易於交換產品系列.乙個具體的工廠類在應用中僅出現一次即它初始化的時候.這使得改變乙個類變得很容易.

3.有利於產品的一致性.當乙個系列中的產品物件被設計成一起工作時,乙個應用一次只能使用同乙個系列中的物件,這一點很重要.

缺點:1.難以支援新種類產品.難以擴充套件抽象工廠以生產新種類的產品.因為工廠類的介面確定了可以被建立的產品集合.支援新種類的產品就需要擴充該工廠的介面.這將涉及工廠類及其所有子類的改變.

大話設計模式C 版本 01 簡單工廠模式

簡單工廠模式 根據不同的條件,使用乙個工廠類來建立不同類的物件的一種設計模式,用來解決建立物件的問題。有幾個不同的類,且這幾個類有共同的父類 在不同的條件下用這幾個類創造不同的物件 寫乙個抽象類作為不同條件的幾個類的父類,例如寫乙個 操作符類 作為 加法類 和 減法類 的父類 偽 class ope...

C 工廠模式 簡單工廠

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

c 簡單工廠模式

主要用於物件建立,新新增類時,不會影響以前的系統 核心思想是用乙個工廠來根據輸入條件產生不同的類,然後根據不同類的的virtual函式得到不同的結果。優點 適用於不同情況建立不同的類。缺點 客戶端必須要知道基類和工廠類,耦合性差。基類 class coperation 加法 class addope...