博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
设计模式学习2 工厂模式
阅读量:6984 次
发布时间:2019-06-27

本文共 1123 字,大约阅读时间需要 3 分钟。

工厂模式其实就是简单模式的升级版本,

 

简单模式将界面与业务逻辑区分开,但是如果不停的增加计算器的运算方式,简单模式中的工厂Factory 中判断的业务逻辑会变非常复杂,这不符合封装的原则。

 

所以在此之上将Factory抽象了出来,代码如下:

 

class Cal{public:   virtual double getResult()   {      return 0;   }   void setPara(double paraA,double paraB)   {      parameterA = paraA;      parameterB = paraB;   }protected:   double parameterA;   double parameterB;};class Plus:public Cal{public:   Plus(){}   double getResult()   {      return parameterA + parameterB;   }};class Minus:public Cal{public:   Minus(){}   double getResult()   {      return parameterA - parameterB;   }};class FactoryInterface{public:   virtual Cal * createCal() = 0;};class AddFactory:public FactoryInterface{public:   Cal *createCal()   {      return new Plus();   }};class MinusFactory:public FactoryInterface{public:   Cal *createCal()   {      return new Minus();   }};void main(){   double paraA = 5,paraB=43,result = 0;   FactoryInterface *factory = new AddFactory;   Cal *cal = factory->createCal();   cal->setPara(paraA,paraB);   result = cal->getResult();   cout<
<

  

 

 

转载于:https://www.cnblogs.com/liujin2012/archive/2013/01/09/2853144.html

你可能感兴趣的文章
我的友情链接
查看>>
xmlUtil 解析 创建
查看>>
我的友情链接
查看>>
linux 命令(3)echo
查看>>
Nginx基础入门之nginx基础配置项介绍(2)
查看>>
一次详细全面的***报告
查看>>
c# 三种异步编程模型EAP(*)、 APM(*)和 TPL
查看>>
deepin-安装问题:unable to find a medium containing a live file
查看>>
用 Hasor 谈一谈MVC设计模式
查看>>
IE 条件注释
查看>>
Windows热键注册(反汇编方法 查看win32api 原理)
查看>>
UNREFERENCED_PARAMETER的作用
查看>>
PHP计算表达式-栈
查看>>
sysbench OLTP基准测试
查看>>
IBATIS中关于iterate"$"与"#"的应用
查看>>
centos -bash: vim: command not found
查看>>
为什么要将对象序列化
查看>>
新增网址/网页 截图api[增加安全防护本接口已停用]源码可下载
查看>>
SpringMVC+Hibernate +MySql+ EasyUI实现POI导出Excel(二)
查看>>
刷leetcode第705题- 设计哈希集合
查看>>