[设计模式]简单工厂模式
来源:互联网 发布:科普是什么意思网络词 编辑:程序博客网 时间:2024/05/22 17:08
工厂类含有必要的判断逻辑,可以决定在什么时候使用哪种产品类的实例。
抽象产品类是所创建的所有对象的父类。
具体产品类是创建目标,继承自抽象产品类。
http://design-patterns.readthedocs.org/zh_CN/latest/creational_patterns/simple_factory.html
#include "Factory.h"#include "ConcreteProductA"#include "ConcreteProductB"Product* Factory::createProduct(string proname) {if ('A' == proname) {return new ConcreteProductA();}else if('B' == proname) {return new ConcreteProductB();}}
createProduct()
工厂类的工厂方法往往是静态方法,可以通过类名直接调用。使用起来很方便。
简单工厂模式将对象的创建和对象本身的业务处理分离,降低了系统和耦合度,使两者修改起来都相对容易。
问题在于,工厂类职责过重,增加新的产品就需要修改相关逻辑,不符合软件开发的开闭原则(对扩展开放,对修改封闭)。且工厂类一旦不能工作,对整个系统都有影响。
简单工厂模式使用了静态工厂方法,造成工厂角色无法形成基于继承的等级结构。
静态方法是该类的行为,与该类的对象无关
0 0
- 简单工厂设计模式
- 设计模式-----简单工厂
- 简单工厂设计模式
- 设计模式:简单工厂
- 设计模式 - 简单工厂
- 设计模式 简单工厂
- 【设计模式】【简单工厂】
- 简单工厂设计模式
- 简单工厂设计模式
- 设计模式--简单工厂
- 简单工厂设计模式
- 简单工厂设计模式
- 设计模式------------简单工厂
- 设计模式--简单工厂
- 简单工厂设计模式
- 设计模式---------简单工厂
- 设计模式--简单工厂
- 简单工厂设计模式
- Vert.x 3学习笔记---07
- jQuery.qrcode.js客户端生成二维码,支持中文并且可以生成LOGO
- attr 和 prop 的区别
- RC522 SPI驱动 mini2440
- StringBuffer和StringBuilder的区别
- [设计模式]简单工厂模式
- cell自适应高度
- 制作java 批处理运行文件
- 添加VisualStadio的Mainbuild-Auto
- 02计算机优秀毕业论文-摘要·前言
- java移位运算符:<<(左移)、>>(带符号右移)和>>>(无符号右移)
- 让TableView的header区头跟随tableView一起滑动
- 最近5年133个Java面试问题列表
- N只猴子选大王(用模拟过程的方法解决)