c++设计模式之工厂方法模式
来源:互联网 发布:航迹规划算法 编辑:程序博客网 时间:2024/06/04 18:36
工厂方法模式
1.简单工厂模式,支持扩展,也对修改开放了,违背了开放-封闭原则。
2.定义一个用于创建对象的接口,让子类决定实例化哪一个类,客户端需要决定实例化哪一个工厂来实现产品类。
#include<stdio.h>#include<string.h>class Oper{ double a; double b;public: void SetA(double _x) {a = _x;} void SetB(double _y) {b = _y;} double GetA(){return a;} double GetB(){return b;} virtual double GetResult(){return 0;}};class Add : public Oper{public: double GetResult(){return (GetA()+GetB());}};class Sub : public Oper{public: double GetResult(){return (GetA()-GetB());}};class IFac{protected: Oper * oper;public: ~IFac(){ if(oper)delete oper;} virtual Oper * CreateFac()=0;};class CreateAddOper:public IFac{public: CreateAddOper(){oper = new Add();} Oper * CreateFac(){ return oper;}};class CreateSubOper:public IFac{public: CreateSubOper(){oper = new Sub();} Oper * CreateFac(){ return oper;}};int main(){ IFac * createAddOper = new CreateAddOper(); Oper * oper = createAddOper->CreateFac(); oper->SetA(100); oper->SetB(10); printf("----------%f------\r\n",oper->GetResult()); IFac * createSubOper = new CreateSubOper(); Oper * oper1 = createSubOper->CreateFac(); oper1->SetA(100); oper1->SetB(10); printf("----------%f------\r\n",oper1->GetResult()); return 0;}
UML:
0 0
- C#--设计模式之工厂方法模式
- 设计模式之简单工厂,工厂方法模式(c++)
- 设计模式之工厂方法
- 设计模式之工厂方法
- 设计模式 之 工厂方法
- 设计模式 之 工厂方法
- 设计模式之工厂方法
- 设计模式之工厂方法
- 设计模式之工厂方法
- 设计模式之工厂方法
- 设计模式之工厂方法
- 设计模式之工厂方法
- 设计模式之工厂方法
- 设计模式之工厂方法
- 设计模式之工厂方法
- 设计模式之工厂方法
- 设计模式之工厂方法
- 设计模式之工厂方法
- hdu 1421
- 谷歌浏览器退回键 弹出确认重新提交表单
- java 获取CPU 和 硬盘序列号的方法
- java 集合Collection接口
- Opencv实现盲水印技术(一)——构建Java工程
- c++设计模式之工厂方法模式
- AndroidStudio录制真机并转换为GIF
- yii带条件搜索分页
- 移动应用实战(移动OA)之四_会议室管理之一
- 【机器视觉】移动机器人控制软件的设计与实现
- 我看小程序系列文章:1 不一样的角度 解读微信小程序
- android网络请求框架的学习之路——浅谈对Volley,OkHttp,Retrofit的了解与对比
- java虚拟机Jvm入门(一)
- Pycharm快捷键大全