[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

持续更新中

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