博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【设计模式】 工厂模式实例 C++ , 利用工厂模式写一个计算器
阅读量:4290 次
发布时间:2019-05-27

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

 

#include 
class Calculator{public: virtual double cal()=0; Calculator(){} void setValue(double _a, double _b) { a=_a; b=_b; }public: double a; double b;};class Factory{ virtual Calculator * create()=0;};class CalculatorAdd : public Calculator{public: double cal() { return a+b; }};class FactoryAdd: public Factory{public: CalculatorAdd * create() { return new CalculatorAdd(); }};class CalculatorMinus : public Calculator{public: double cal() { return a - b; }};class FactoryMinus : public Factory{public: CalculatorMinus * create() { return new CalculatorMinus(); }};//这样做的好处是: 隐藏了CalculatorAdd类, 如果后续我们需要修改Add方法, 只需要修改CalculatorAdd方法, 或者增加一个你需要的//CalculaterAddPlus类就行了, 而不必要修改源码源代码不需要修改,int main(){ FactoryAdd fac ; Calculator* cal = fac.create(); cal->setValue(1,2); std::cout<< cal->cal();}

注:

        工厂模式和策略模式的区别:  工厂模式强调代码隐藏,解耦合,  策略模式强调方法的可替换性。

转载地址:http://uorgi.baihongyu.com/

你可能感兴趣的文章
进程间通信--信号(进程间通信唯一的异步方式)
查看>>
linux 标准IO缓冲机制探究
查看>>
【转】linux网络编程——套接字(socket)入门
查看>>
【原创】samba移植到android流程
查看>>
【原创】boa服务移植到安卓手机
查看>>
msgrcv error : Identifier removed(ERMID)错误解决;
查看>>
Linux进程间通信——消息队列:
查看>>
linux内核——进程管理
查看>>
(原创)socket学习实验(一)——利用C 语言socket抓取一个网页内容
查看>>
Linux 同步方法剖析--内核原子,自旋锁和互斥锁
查看>>
adb shell中设置android系统内部环境变量!
查看>>
Android ADB中使用find命令
查看>>
(原创)android6.0系统Healthd深入分析
查看>>
(原创)android6.0系统 Doze模式(DeviceIdle)实现与控制逻辑
查看>>
(原创)Android6.0亮屏流程之Keyguard Window绘制
查看>>
(原创)Android6.0亮屏流程分析
查看>>
Intent启动另一个APP里的fragment
查看>>
Android 系统7.0上 屏幕背光流程分析
查看>>
解决升级chrome后,访问https出现Your connection is not private
查看>>
Android 7.0之JobScheduler 分析(一)——如何使用job
查看>>