一 包含的角色
簡單工廠模式包含三個角色:
二 優勢
實現了松耦合,當需要增加一種新產品(在大話設計模式中,例子是運算operation),只需要做兩點改動:
三 c++**實現
開發環境 visual studio community 2017
#include "pch.h"
#include #include using namespace std;
//抽象的產品類
class operation
double getnumberb() const
void setnumbera(const double a)
void setnumberb(const double b)
virtual double getresult()
protected:
double numbera;
double numberb;
};//下面是四種具體產品類
class operationadd : public operation
};class operationsub : public operation
};class operationmul : public operation
};class operationdiv : public operation
return result;
}};//到底要例項化誰,將來會不會增加例項化操作,比如增加開根運算
//應該考慮用乙個單獨的類來做這個創造例項的過程,這就是工廠
class operationfactory
return oper;
}};//客戶端**
第一章 簡單工廠模式
物件導向程式設計永遠在考慮 解藕和復用。設計模式是前輩總結的結果,這些模式都是基於問題本身的抽象,活學活用才是王道。簡單工廠模式具有物件導向程式設計的基本優點 封裝 繼承和多型。created by hero on 16 3 29.public abstract class operation pu...
大話設計模式 第一章 簡單工廠模式
實現乙個計算器控制台程式 活字印刷 第一,要改,只需改要改之字,此為可維護 第二,這些字用完依然可用,此為可復用 第三,若要加字只需另刻再加入即可,此為可擴充套件 第四,可橫排可豎排,此為靈活性好 複製vs復用 將計算和顯示分開 即將業務邏輯和介面邏輯分開 public class operatio...
第一章 Cach 設計模式 簡單工廠模式
工廠類運算類 加法類減法類 乘法類除法類 指數類思考 可能會寫成這樣 w class pha.yx.design.program getresult classmethod getresult 缺點 if表示式每次都需要判斷,等於計算機做了三次無用功。如果除法,輸入了0,除法會報錯。輸入第乙個數字 ...