這個例子來自於《大話設計模式》的第一章。
簡單工廠模式有3個基本的類:工廠類,抽象產品類,具體產品類。
使用抽象產品類作為乙個基類,其餘具體產品類繼承它的基礎資料,然後實現具體的功能。工廠類根據客戶的需求來決定生成哪乙個具體產品的物件。這種想法下抽象產品類應該設定為抽象類。這道題目雖然思路並不難,實現也不複雜。但是它卻很好的體現了物件導向的設計思想。
說一說我對設計模式的理解,我們平時寫的**量如果小的話,根本用不到設計模式。比如你寫乙個排序演算法,想用設計模式都 用不進去。但是對於大的專案工程,設計模式就特別重要。因為你看看設計模式的思想,實現**的低耦合,使得**可維護,可復用,可擴充套件,靈活性高。也就是說,設計模式使得你寫的**更clean,更有規則性。對於乙個公司的專案來說,功能設計必須分開,因為不同的業務是不同的組實現的,而且可能人家組有自己的秘密呢(^_^)。這就是低耦合。而且加功能,改功能是很常見的需求,因為客戶的需求總是變化的,這時候**的可維護、可復用就很重要了。這就是設計模式的重要之處,讓你寫出更clean的**。自己更容易維護和修改,你的同事也是。
1//實現乙個計算器控制台程式
2 #include3
//#include
4using
namespace
std;5//
抽象產品類
6class
operate716
double
getnumb()
1720
void setnuma(double
initiala)
2124
void setnumb(double
initialb)
2528
virtual
double
getresult()
2933
};34
//具體產品類
35class addoperation:public
operate
3646
};47
class suboperation:public
operate
4856
};57
class multipyloperation:public
operate
5866
};67
class dividoperation:public
operate
6877
double result=0
;78 result=numbera/numberb;
79return
result;80}
81};
82//
工廠類83
class
operationfactory
84104
return
oper;
105}
106};
107//
介面與輸出
108void
calculater()
109129 system("
pause");
130//
cout<131
}132
intmain()
133
我還給自己的**寫了一點坑,比如實現介面,實現乙個多個專案的加減乘數的演算法,留著以後慢慢填哈~
設計模式 1 簡單工廠模式
簡單工廠模式屬於建立型的設計模式,其特點是使用乙個工廠生產所有的類物件,通過在工廠類中進行判斷,然後建立需要的功能類。優點 不必使用具體的功能類去建立該類的例項。缺點 新增乙個功能類就需要在工廠類中增加乙個判斷。此處利用 這4個operation來生成不同的operation物件來說明簡單工廠模式。...
設計模式 1 簡單工廠模式
總結簡單工廠設計模式就是為了能夠根據不同情況動態獲取到需要的型別 在本次將會演示乙個計算器的功能 我們無法知道使用者在程式中會輸入哪些字元,是 或者其他,但是我們能確定的是使用者需要通過輸入將兩個值進行運算,得到乙個返回結果。那麼在此處我們就可以建立乙個演算法基類,有設定值並計算後返回值的方法,值1...
設計模式(1) 簡單工廠模式
例項化物件的時候不再使用 new object 形式,可以根據使用者的選擇條件來例項化相關的類。對於客戶端來說,去除了具體的類的依賴。只需要給出具體例項的描述給工廠,工廠就會自動返回具體的例項物件。todo classname operation description 運算類 public cla...