如下圖所示,簡單工廠模式(以計算器為例):
1:新建乙個抽象類,將getresult方法封裝為純虛函式;
2、由上述抽象類派生出各個實際計算操作的類(加、減、乘、除...);
3、在乙個新的類裡面用靜態函式來產生實際操作的物件,這個類即為工廠類;
4、客戶端(使用者)呼叫工廠類,通過加、減、乘等具體需要的操作來產生相應的物件,進而呼叫對應的操作:比如通過傳入『+』字元給工廠類的createoperator()方法,產生add類的例項,並通過該例項的指標op呼叫add類裡的getresult()方法
程式示例:
#includeusing namespace std;
class operation
virtual ~operation()
void seta(double x)
void setb(double y)
double geta()
double getb()
virtual double getresult() = 0; //純虛函式
private:
double a;
double b;
char ch;
};class add :public operation
};class sub :public operation
};class mul : public operation
};class div :public operation
else return geta() / getb();
}};class factory;
~factory();
static operation* createoperator(char c)
return op;
}
};int main()
}
C 實現簡單工廠模式
一,專案簡介 利用簡單工廠模式完成簡易的計算器,可以實現加減乘除運算。工具 vs2013編譯器,windows平台 二,uml類圖 三,operationfactory class pragma once include operation.h 簡單工廠類 class operationfactor...
設計模式 簡單工廠模式 C 實現
考慮乙個簡單的軟體應用場景,乙個軟體系統可以提供多個外觀不同的按鈕 如圓形按鈕 矩形按鈕 菱形按鈕等 這些按鈕都源自同乙個基類,不過在繼承基類後不同的子類修改了部分屬性從而使得它們可以呈現不同的外觀,如果我們希望在使用這些按鈕時,不需要知道這些具體按鈕類的名字,只需要知道表示該按鈕類的乙個引數,並提...
設計模式 簡單工廠 C 實現
簡單工廠方法 定義乙個建立物件的介面,讓子類決定例項化那乙個類。框架定義了和維護物件之間的關係,同時物件的產生也是由框架來負責。場景 1.當乙個類不知道他所必須建立的物件的類的時候 2.當乙個類希望有它的子類指定他所建立的物件的時候。include class itoy class cattoy p...