码迷,mamicode.com
首页 > 编程语言 > 详细

大话设计模式C++实现一:简单工厂模式

时间:2016-11-30 22:26:45      阅读:133      评论:0      收藏:0      [点我收藏+]

标签:type   void   protected   cas   工厂   ber   res   break   actor   

#include <iostream>
#include <cstdlib>

using namespace std;

class Operation
{
protected:
	double numberA;
	double numberB;
public:
	double getA()
	{
		return numberA;
	}
	double getB()
	{
		return numberB;
	}
	void setA(double number)
	{
		numberA = number;
	}
	void setB(double number)
	{
		numberB = number;
	}
	virtual double GetResult()
	{
		double result = 0;
		return result;
	}
};
class operationAdd :public Operation
{
public:
	double GetResult()
	{
		double result = 0;
		result = numberA + numberB;
		return result;
	}
};
class operationSub :public Operation
{
public:
	double GetResult()
	{
		double result = 0;
		result = numberA - numberB;
		return result;
	}
};
class operationMul :public Operation
{
public:
	double GetResult()
	{
		double result = 0;
		result = numberA * numberB;
		return result;
	}
};
class operationDiv :public Operation
{
public:
	double GetResult()
	{
		double result = 0;
		result = numberA / numberB;
		return result;
	}
};

class OperationFactory
{
public:
	Operation* createOperation(char type)
	{
		Operation *oper;
		switch (type)
		{
		case ‘+‘:
			oper = new operationAdd;
			break;
		case ‘-‘:
			oper = new operationSub;
			break;
		case ‘*‘:
			oper = new operationMul;
			break;
		case ‘/‘:
			oper = new operationDiv;
			break;
		}
		return oper;
	}
};
int main()
{
	Operation* oper = NULL;
	OperationFactory of;
	double A;
	double B;
	char op;
	cout << "Input A:";
	cin >> A;
	cout << "Input B:";
	cin >> B;
	cout << "Input oper:";
	cin >> op;
	oper = of.createOperation(op);
	oper->setA(A);
	oper->setB(B);
	cout << oper->GetResult() << endl;
	if (oper != NULL)
	{
		delete oper;
		oper = NULL;
	}
	return 0;
}

  

大话设计模式C++实现一:简单工厂模式

标签:type   void   protected   cas   工厂   ber   res   break   actor   

原文地址:http://www.cnblogs.com/miracle2015126/p/6119779.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!