C++工程模式

#include <iostream>
using namespace std;

//虚基类
class Operation
{
protected:
	int numberA;
	int numberB;
public:
	void setA(int _number)
	{
		numberA=_number;
	}
	int getA()
	{
		return numberA;
	}
	
	void setB(int _number)
	{
		numberB=_number;
	}
	int getB()
	{
		return numberB;
	}

	virtual int GetResult()
	{
		return 0;
	}

};

//派生类 重载虚函数
class OperationAdd:public Operation
{
public:
	virtual int GetResult()
	{
		return numberA+numberB;
	}

};

//派生类 重载虚函数
class OperationSub:public Operation
{
public:
	virtual int GetResult()
	{
		return numberA-numberB;
	}

};


//工厂模式,识别调用哪个派生类
class OperationFactory
{
public:
	static Operation *createOperation(char op)
	{
		Operation *opr;
		switch(op)
		{
		case '+':opr=new OperationAdd();break;
		case '-':opr=new OperationSub();break;
		}
		return opr;
	}
};


int main()
{
	//采用工厂模式的计算器实例
	Operation *o;
	o=OperationFactory::createOperation('+');
	o->setA(12);
	o->setB(8);
	cout<<o->GetResult()<<endl;

	o=OperationFactory::createOperation('-');
	o->setA(12);
	o->setB(8);
	cout<<o->GetResult()<<endl;

	return 0;
}

你可能感兴趣的:(C++工程模式)