工厂模式
来源:互联网 发布:数据科学家 编辑:程序博客网 时间:2024/06/05 14:36
1.简单工厂模式**:主要用于创建对象。新添加类时,不会影响以前的系统代码。核心思想是用一个工厂来根据输入的条件产生不同的类,然后根据不同类的 virtual 函数得到不同的结果。
#include<iostream>using namespace std;class Operation{public: double numberA; double numberB; virtual double GetResult() { double result = 0; return result; }};class OperationAdd:public Operation{public: double GetResult() { return numberA + numberB; }};class OperationDec :public Operation{public: double GetResult() { return numberA - numberB; }};class OperationFactory{public: static Operation * CreateFactory(char Operator) { Operation * oper = NULL; switch(Operator) { case '+': oper = new OperationAdd(); break; case '-': oper = new OperationDec(); break; } return oper; }};int main(){ Operation * per=OperationFactory::CreateFactory('-'); per->numberA = 2; per->numberB = 3; cout << per->GetResult();}
假如需要添加一个新的操作符*,我们需要修改工厂类,这违反了开放封闭原则(类可以被扩展,但不能被修改),所以用到工厂方法模式。(以后再补)
阅读全文
0 0
- 工厂模式 -- 工厂方法
- 工厂模式 -- 抽象工厂
- 工厂模式-简单工厂
- 工厂模式-工厂方法
- 工厂模式:静态工厂
- 工厂模式-简单工厂
- 工厂模式-抽象工厂
- 工厂模式-工厂方法
- 工厂 > 工厂方法模式
- 工厂模式-静态工厂
- 工厂模式-抽象工厂
- 工厂模式
- 工厂模式
- 工厂模式
- 工厂模式
- 工厂模式
- 工厂模式
- 工厂模式
- java 开发流行的工具库
- Android四大组件:BroadcastReceiver
- 一个tomcat下部署多个项目或一个服务器部署多个tomcat
- 在Ubuntu 16.04和14.04安装Go 1.7
- 基于 Semtech LoRa技术之城市网关方案
- 工厂模式
- 诚品书店创始人语录
- 用Python写网络爬虫——学习笔记(2)
- OKHTTP源码分析(一)异步方法
- object_id的类型
- Android studio 如何修改工程的包名
- 【Linux】GDB查看栈信息(转)
- springboot + mybatis + 多数据源
- 场景文字序列识别的端到端神经网络