研究了一下大話設計模式,順手吧簡單工廠模式的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...