薯片笔记 浅谈工厂模式
来源:互联网 发布:魔方大数据 编辑:程序博客网 时间:2024/04/29 07:31
谈到工厂模式,首先要提到的就是简单的工厂模式。简单工厂模式实际上就是动态实例化类的模式。
工厂方法的类图:
工厂方法的实现:
//算法的父类,抽象出返回结果的接口class Operation{public: virtual int GetResult() =0;public: double m_Num1; double m_Num2;};//工厂类,用于生产相应的算法子类class OperationFactry{public: OperationFactry(void); ~OperationFactry(void);public: static Operation* CreateOperate(int n ) { switch(n) { case 1: return new OperationAdd1; break; case 2: return new OperationAdd2; break; } }};//算法子类,由工厂类创建,重写父类中的虚函数class OperationAdd1 :public Operation{public: int GetResult();}; class OperationAdd2 :public Operation{public: int GetResult();};
而工厂模式就是的单工厂方法进行了抽象的一种模式。一个抽象的Factory类(可以是抽象类和接口),这个类将不在负责具体的产品生产,而是只制定一些规范,具体的生产工作由其子类去完成。在这个模式中,工厂类和产品类往往可以依次对应。即一个抽象工厂对应一个抽象产品,一个具体工厂对应一个具体产品,这个具体的工厂就负责生产对应的产品。
工厂模式的类图
工厂模式的实现
//算法的父类,抽象出返回结果的接口class Operation{public: virtual int GetResult() =0;public: double m_Num1; double m_Num2;};//工厂类,用于生产相应的算法子类class OperationFactry{public: OperationFactry(void); ~OperationFactry(void);public: static Operation* CreateOperate(int n ) { switch(n) { case 1: return new OperationAdd1; break; case 2: return new OperationAdd2; break; } }};//算法子类,由工厂类创建,重写父类中的虚函数class OperationAdd1 :public Operation{public: int GetResult();}; class OperationAdd2 :public Operation{public: int GetResult();};
工厂模式是我们最常用的实例化对象模式了,是用工厂模式代替new操作的一种模式。但是相比起new操作来,工厂模式可以提高代码的简介程度的同时,可以有效的降低构造函数的耦合。工厂模式的缺点就是每添加一个新的产品类的时候,就需要针对工厂基类进行修改。所以使用抽象工厂模式时,对产品等级结构的划分是非常重要的。
0 0
- 薯片笔记 浅谈工厂模式
- 薯片笔记 浅谈观察者模式
- 浅谈工厂模式
- 浅谈“工厂模式”
- 浅谈工厂模式
- 抽象工厂模式浅谈
- 简单工厂模式浅谈
- 浅谈java工厂模式
- 浅谈工厂模式
- 工厂模式浅谈
- 浅谈工厂模式
- 浅谈Java工厂模式
- Java工厂模式浅谈
- 浅谈工厂设计模式
- 浅谈工厂模式
- 浅谈简单工厂模式、工厂方法模式、抽象工厂模式
- 浅谈DAO工厂设计模式
- 浅谈java工厂方法模式
- 我的学习之旅(20)console.h和console.c
- Xcode集成POD教程
- 用minpack求参数优化
- Linux(CentOS 6)下配置安装Tomcat并配置JDK环境
- C++ 对有静态字段的类导出——_declspec(dllimport) 的重要性
- 薯片笔记 浅谈工厂模式
- gdbinit 使用(转)
- rsyslog
- JAVA中各种日期表示字母
- 整数划分之四 【区间dp】讲解于思考方法
- 数据类型 转换
- Mac系统下Apache+PHP+MySql搭建
- C/C++_ const int * 与 int *const的区别
- 简单table和form示例