五 工廠模式

2021-06-06 15:23:38 字數 1331 閱讀 6933

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

#ifndef _operation_h_

#define _operation_h_

class operation

;class operationadd:public operation

;class operationsub:public operation

;class operationmul:public operation

;class operationdiv:public operation

;#endif

#include "operation.h"

#include #include using namespace std;

double operationadd::getresult()

double operationsub::getresult()

double operationmul::getresult()

double operationdiv::getresult()

else

cout<<"除數不能為0"<#include "factory.h"

#include "operation.h"

using namespace std;

int main()

{ char operate;

double numa;

double numb;

operation* op=null;

operationfactory* of= null;

cout<<"請輸入數字1:";

cin>>numa;

cout<<"請輸入運算子:";

cin>>operate;

cout<<"請輸入數字2:";

cin>>numb;

switch(operate)

{ case '+':of = new addfactory();break;

case '-':of = new subfactory();break;

case '*':of = new mulfactory();break;

case '/':of = new divfactory();break;

default:cout<<"算符輸入錯誤!"op->_num1 = numa;

op->_num2 = numb;

double result = op->getresult();

cout<

(五)工廠模式

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

設計模式 工廠模式(五)

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

設計模式 五 工廠模式

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