(五)工廠模式

2021-06-21 03:51:20 字數 645 閱讀 1622

這個跟之前的簡單工廠模式的不同之處在於工廠類factory作為基類存在,演算法類operation作為子類存在,不同的工廠子類生成對應大算法子類,不難理解,就直接貼**了

#include #include using namespace std;

//演算法類

class operation

void set_data( double a, double b )

virtual double get_result() {}

protected:

double a,b;

};class add : public operation

};class sub : public operation

};//工廠類

class operation_factory

}; class add_factory : public operation_factory

};class sub_factory : public operation_factory

};int main()

修正了簡單工廠模式中不遵守開放-封閉原則。工廠方法模式把選擇判斷移到了客戶端去實現,如果想新增新功能就不用修改原來的類,直接修改客戶端即可。

五 工廠模式

工廠模式 factory method 定義乙個用於建立物件的介面,讓子類決定例項化哪乙個類。工廠方法使得乙個類的例項化延遲到其子類。ifndef operation h define operation h class operation class operationadd public ope...

設計模式 工廠模式(五)

軟體領域中的設計模式的重要性不言而喻。設計模式中運用了物件導向程式設計語言的重要特性 封裝 繼承 多型。雖然知道這些特性的定義但是並沒有做到真正的理解,這樣特性有什麼作用?用於什麼場合中等等問題,帶著疑問開始學習設計模式,主要參考 大話設計模式 和 設計模式 可復用物件導向軟體的基礎 兩本書。工廠方...

設計模式 五 工廠模式

工廠模式 定義乙個用於建立物件的介面,讓子類決定例項化哪乙個類。工廠方法使乙個類的例項化延遲到其子類,克服了簡單工廠違背開放 封閉原則的缺點,又保持了封裝物件建立過程的有點。開放 封閉原則 對於拓展是開放的,對於更改是封閉的 學生和志願者繼承雷鋒類,學生工廠和志願者工廠實現了雷鋒工廠介面,當需要改變...