簡單工廠模式屬於創建型模式又叫做靜態工廠方法模式,它屬於類創建型模式。
在簡單工廠模式中,可以根據參數的不同返回不同類的實例。
簡單工廠模式專門定義一個類來負責創建其他類的實例,被創建的實例通常都具有共同的父類。
代碼如下:
// 參考大話設計模式
#include <iostream>
using namespace std;
// base
class Operation {
public:
virtual int GetResult() {
int result = 0;
return result;
}
public:
int first_num_ = 0;
int second_num_ = 0;
};
// plus
class PlusOperation :public Operation {
public:
virtual int GetResult() {
return first_num_ + second_num_;
}
};
// Sub
class SubOperation :public Operation {
public:
virtual int GetResult() {
return first_num_ - second_num_;
}
};
// simple factory
class SimpleFactory {
public:
static Operation* CreateFactory(char sign);
};
Operation* SimpleFactory::CreateFactory(char sign) {
Operation* oper_ret = nullptr;
switch (sign)
{
case '+':
oper_ret = new PlusOperation();
break;
case '-':
oper_ret = new SubOperation();
break;
default:
// do nothing
break;
}
return oper_ret;
}
int main()
{
std::cout << "Hello Simple Factory!\n";
int first_num = 0;
int second_num = 0;
cin >> first_num >> second_num;
char sign;
cin >> sign;
Operation* op = SimpleFactory::CreateFactory(sign);
op->first_num_ = first_num;
op->second_num_ = second_num;
cout << op->GetResult() << endl;
return 0;
}
github源碼路徑:https://github.com/dangwei-90/Design-Mode
持續更新中