大话设计模式 --- 简单工厂模式

本文详细介绍了如何使用C++实现基本的二元数学运算(加、减、乘、除),通过定义操作基类和具体运算类,以及运算工厂类来完成不同运算的选择和执行。

说的是简单的二元数学运算的问题:加减乘除等。

书里是用非C++语言描述的,不过我还是喜欢C++多一点,下面改成了C++版。

操作基类:

class Operation:

{

public:

Operation(): m_numA (0), m_numB(0){}

virtual double GetResult(){return 0;}

void setOperationNum( double numA,double numB )

{

m_numA = numA;

m_numB = numB;

}

private:

double m_numA;

double m_numB;

};

加法类:

class OperationAdd: public Operation

{

public:

virtual double GetResult()

{

return m_numA + m_numB;

}

}

类似实现 减法类 OperationSub 乘法类 OperationMul 等

再实现运算工厂类:

class OperationFactory:

{

public:

Operation * createOperate( const string& operate )

{

Operation* oper;

switch(operate )

{

case "+": oper = new OperationAdd();break;

case "-": oper = new OperationSub();break;

... ...

}

}

}

实际应用:

Operation*oper;

OperationFactory factory;

oper = factory.createOperate("+");

oper->setOperationNum(2,3);

double result = oper->GetResult();

delete oper;

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值