Chapter08 工廠方法模式

2022-08-13 04:48:22 字數 2225 閱讀 7116

工廠方法模式(factory method),定義乙個用於建立物件的介面,讓子類決定例項化哪乙個類。工廠方法使乙個類的例項化延遲到其子類中。

工廠方法模式在實現時,客戶端需要決定例項化哪乙個工廠來實現運算類,選擇判斷的問題還是存在的,也就是說,工廠方法把簡單工廠的內部邏輯判斷移到了客戶端**來進行。你想要加功能,本來是改工廠類的,而現在是修改客戶端**。

myoperator類 定義運算元和得到結果的介面

#ifndef _my_operator_hpp

#define _my_operator_hpp

class

myoperator

virtual

double

getresult(){};

protected

:

double

a;

double

b;};

#endif

//

addoperator類

#ifndef _add_operator_hpp

#define _add_operator_hpp#include

"myoperator.hpp

"class addoperator:public

myoperator

virtual

double getresult() override

};#endif

//

suboperator 類

#ifndef _sub_operator_hpp

#define _sub_operator_hpp#include

"myoperator.hpp

"class suboperator:public

myoperator

virtual

double getresult() override

};#endif

//

myfactory 類 僅僅乙個介面類

#ifndef _sub_operator_hpp

#define _sub_operator_hpp#include

"myoperator.hpp

"class suboperator:public

myoperator

virtual

double getresult() override

};#endif

//

addfactory 類

#ifndef _addfactory_hpp

#define _addfactory_hpp#include

"myfactory.hpp

"#include

"myoperator.hpp

"#include

"addoperator.hpp

"class addfactory:public

myfactory

};#endif

//

subfactory 類

#ifndef _sub_factory_hpp

#define _sub_factory_hpp#include

"myfactory.hpp

"#include

"myoperator.hpp

"#include

"suboperator.hpp

"class subfactory:public

myfactory

};#endif

//

客戶端程式

#include#include

"addfactory.hpp

"#include

"subfactory.hpp

"using

namespace

std;

intmain()

初識設計模式 chapter 08 模板方法模式

直到目前,我們的議題都繞著封裝轉,我們已經封裝了物件建立 方法呼叫 複雜介面 鴨子 披薩。接下來呢?我們將要深入封裝演算法塊,好讓子類可以在任何時候都可以將自己掛接進運算裡。我們甚至會在本章學到乙個受到好萊塢影響而啟發的設計原則。有些人沒有咖啡就活不下去,有些人則離不開茶。兩者的共同成分是什麼,當然...

工廠方法模式 設計模式 08

工廠方法模式遵循了,開放封閉式原則,我們直接用案例來體現 定義乙個電腦介面 public inte ce icomputer 電腦介面卡實現電腦介面 public class adapter implements icomputer 電腦主機板實現電腦 public class board impl...

工廠方法模式 工廠方法模式

工廠方法模式是簡單工廠模式的公升級版,簡單工廠模式不符合設計模式的原則 即 單一職責,開閉原則 優點 職責明確,擴充套件方便 缺點 需要建立多個工廠 實現步驟 1.將工廠通用方法抽取介面 例如 ifactory 2.將產品抽取介面 例如 icar 3.實現各種產品 例如 baomacar,benti...