[C++]簡單工廠模式

簡單工廠模式屬於創建型模式又叫做靜態工廠方法模式,它屬於類創建型模式。
在簡單工廠模式中,可以根據參數的不同返回不同類的實例。
簡單工廠模式專門定義一個類來負責創建其他類的實例,被創建的實例通常都具有共同的父類。

代碼如下:


// 參考大話設計模式

#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

持續更新中

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章