设计模式C++实现一:简单工厂模式
来源:互联网 发布:淘宝创想电玩 编辑:程序博客网 时间:2024/05/17 11:36
参考大话设计模式和网上的一些资料,自己编写下一些简单的设计模式,让自己了解这些设计模式的妙处!
#ifndef OPERATION_H#define OPERATION_H#include<iostream>using namespace std;class Operation{protected:double opA, opB;public:bool SetValue(double& n, double& m);virtual double GetResult()const=0;};class OperationAdd :public Operation{double GetResult()const;};class OperationSub :public Operation{double GetResult()const;};class OperationMul :public Operation{double GetResult()const;};class OperationDiv :public Operation{double GetResult()const;};class OperationFactory{public:Operation * CreatOperation(char& operate);};bool Operation::SetValue(double &n, double &m){opA = n;opB = m;return true;}double OperationAdd::GetResult()const{double result;result = opA + opB;return result;}double OperationSub::GetResult()const{double result;result = opA - opB;return result;}double OperationMul::GetResult()const{double result;result = opA * opB;return result;}double OperationDiv::GetResult()const{if (opB == 0){ cout << "opB in OperationDiv can't be zero.\n"; return 0.00000001;}double result;result = opA / opB;return result;}Operation * OperationFactory::CreatOperation(char& operate){Operation * Oper = NULL;switch (operate){case('+') :Oper = new OperationAdd;break;case('-') :Oper = new OperationSub;break;case('*') :Oper = new OperationMul;break;case('/') :Oper = new OperationDiv;break;default:break;}return Oper;}#endif
#include"operation.h"int main(){double numA, numB;char op;Operation * Oper;OperationFactory OpFa;cout << "Please enter the numbers and operation(A op B)";while (cin>>numA&&cin>>op&&cin>>numB){Oper = OpFa.CreatOperation(op);Oper->SetValue(numA, numB);cout << "The result of " << numA << op << numB << "= " << Oper->GetResult() << endl;cout << "Please enter the numbers and operation(A op B)";}return 0;}
0 0
- 工厂设计模式一 简单工厂模式
- 设计模式实现(一)---简单工厂模式
- 【设计模式 】一 简单工厂模式 (python实现)
- 设计模式C++实现一:简单工厂模式
- 设计模式一 简单工厂设计模式
- 设计模式一 简单工厂
- 设计模式一:简单工厂
- C#--简单工厂设计模式
- 设计模式(一)--简单工厂模式(1)
- 设计模式(一)---简单工厂模式
- java设计模式一 简单工厂模式
- 设计模式(一):简单工厂模式
- 设计模式(一)简单工厂模式
- 大话设计模式(一)简单工厂模式
- 设计模式(一)简单工厂模式
- 设计模式(一)--简单工厂模式
- 设计模式笔记一:简单工厂模式
- 设计模式(一)简单工厂模式
- 把大写字符串转换成小写
- java中final和static的作用和使用方法
- ThinkPHP3.1快速入门(1)基础
- EventBus 利弊与源码解析
- 行为型模式-Mediator ( 中介者模式 )
- 设计模式C++实现一:简单工厂模式
- 第九周项目一复数类中的运算符重载(续)(1)
- Android WebView的Js对象注入漏洞解决方案
- iOS沙盒
- 行为型模式-Memento ( 备忘录模式 )
- C# Ajax 在前台调用报出未定义错误
- 禅道一键安装
- 判断是否下载指定客户端(遍历硬盘上的全部文件文件夹)
- 行为型模式-Observer ( 观察者模式 )