大话设计模式中简单工厂模式的计算器实例的C++代码
2012-08-05 13:45
585 查看
这里只是实现了加减乘除,和书中的C#实现的方法基本相似。
#include <iostream> #include <string> using namespace std; //Operation运算类 class Operation { private: double _numberA; double _numberB; public: Operation(){} Operation(double numA,double numb):_numberA(numA),_numberB(numb) { } virtual double GetResult() { double result = 0; return result; } void set_numberA(double numA) { _numberA = numA; } void set_numberB(double numB) { _numberB = numB; } double get_numberA() { return _numberA; } double get_numberB() { return _numberB; } }; //加减乘除类 class OperationAdd: public Operation { public: OperationAdd() { } OperationAdd(double numA,double numB):Operation(numA,numB){} double GetResult() { double result = 0; result = get_numberA()+get_numberB(); return result; } }; class OperationSub:public Operation { public: OperationSub() { } OperationSub(double numA,double numB):Operation(numA,numB){} double GetResult() { double result = 0; result = get_numberA()+get_numberB(); return result; } }; class OperationMul: public Operation { public: OperationMul() { } OperationMul(double numA,double numB):Operation(numA,numB){} double GetResult() { double result = 0; result = get_numberA()+get_numberB(); return result; } }; class OperationDiv:public Operation { public: OperationDiv() { } OperationDiv(double numA,double numB):Operation(numA,numB){} double GetResult() { double result = 0; if( get_numberB() == 0){ throw new exception("除数不能为零"); } result = get_numberA()+get_numberB(); return result; } }; //简单运算工厂类 class OperationFactory { public: Operation* createOperate(char operate) { Operation *oper; switch(operate){ 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; OperationFactory operFactory; oper = operFactory.createOperate('+'); oper->set_numberA(1); oper->set_numberB(2); double result = oper->GetResult(); cout<<"result = "<<result<<endl; }
相关文章推荐
- 大话设计模式中简单工厂模式和策略模式的商场收银软件实例的C++代码
- 《大话设计模式》读书笔记(C++代码实现) 第一章:简单工厂模式
- 《大话设计模式》读书笔记(C++代码实现) 第一章:简单工厂模式
- 设计模式之工厂模式结合单例模式C++计算器代码DEMO(历史代码,贴出学习)
- 简单工厂方法模式-计算器实例
- 《大话设计模式》之--第1章 代码无错就是优?----简单工厂模式
- 大话设计模式之C++实现---简单工厂模式
- 《大话设计模式》之--第1章 代码无错就是优?----简单工厂模式
- 【设计模式系列】简单工厂类——计算器设计实例
- 大话设计模式1 简单工厂模式 的java代码实现
- 大话设计模式c++实现之一 简单工厂模式
- 大话设计模式--工厂模式 factory -- C++实现实例
- 大话设计模式-第1章代码无错就是优?-简单的工厂模式
- 大话设计模式 第1章 代码无错就是优? 简单工厂模式
- Java版大话设计模式(一)---计算器---简单工厂模式
- 大话设计模式--工厂模式 factory -- C++实现实例
- 大话设计模式(C++实现)--简单工厂模式
- 结合项目实例 回顾传统设计模式(四)工厂模式(简单工厂、普通工厂、抽象工厂)
- C++实现统计代码运行时间计时器的简单实例
- 简单工厂模式--《大话设计模式》读书笔记