简单工厂模式(对象创建)

#include <iostream>
#include <string>
using namespace std;
//工厂模式:客户类和工厂类分开。
//消费者任何时候需要某种产品,只需向工厂请求即可。
//消费者无须修改就可以接纳新产品。缺点是当产品修改时,
//工厂类也要做相应的修改。如:如何创建及如何向客户端提供。
//第一,基类存放数据
//第二,派生类有很多,派生类存放数据的操作
//第三实现接口类,用静态函数实现调用各种派生类
class Operation    //基类存放数据
{
public:
	double numberA, numberB;//两个数
	virtual double  getResult()//获取结果
	{
		return 0;
	}
};

class addOperation :public Operation//派生类存放操作
{
	double getResult()
	{
		return numberA + numberB;
	}
};


class subOperation :public Operation
{
	double getResult()
	{
		return numberA - numberB;
	}
};

class mulOperation :public Operation
{
	double getResult()
	{
		return numberA*numberB;
	}
};

class divOperation :public Operation
{
	double getResult()
	{
		return numberA / numberB;
	}
};

class operFactory //实现调用改革吃哦啊做
{
public:
	static Operation *createOperation(char c)
	{
		switch (c)
		{
		case '+':
			return new addOperation;
			break;

		case '-':
			return new subOperation;
			break;

		case '*':
			return new mulOperation;
			break;

		case '/':
			return new divOperation;
			break;
		}
	}
};
int main()
{
	Operation *oper = operFactory::createOperation('-');
	oper->numberA = 9;
	oper->numberB = 99;
	cout << oper->getResult() << endl;

	cin.get();
	return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值