设计模式之工厂方法模式
来源:互联网 发布:vss软件 编辑:程序博客网 时间:2024/06/06 09:36
含义
工厂方法模式:(Factory Method):定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到其子类。
结构图:
与简单工厂模式对比
简单运算器结构图对比
简单工厂:
工厂方法:
根据上图结构图的例子,如果要增加一个新的算法,简单工厂模式就必须要在运算工厂类的方法里加分支条件,修改原有的类,违背了开放封闭原则。而工厂方法模式,只需扩展(即增加,不用修改原先的类)原有的算法类和工厂类。
简单工厂优点在于工厂类中包含了必要的逻辑判断,根据客户端的选择条件动态实例化相关的类,对于客户端来说去除了与具体产品的依赖。
工厂方法是简单工厂模式的进一步抽象和推广,克服了简单工厂违背开放封闭原则的缺点,又保持了封装对象创建过程的优点。(使得增加新产品时,不需要去更改原有的产品体系和工厂类,只需扩展新的类即可)
二者都集中封装了对象的创建,使得要更换对象时,不需要做大的改动就可实现,降低了客户程序与产品对象的耦合。
何时用工厂方法模式
1、一个类无法预测它要创建的对象属于哪个类
2、 一个类用它的子类来指定所创建的对象
3、把要创建哪一个类的信息局部化的时候
实现工厂方法模式,注意的几个问题
1、基类是一个抽象类,模式必须返回一个完整的可工作的类
2、基类包含默认方法,除非默认方法不能胜任,才会调用这些方法
3、可以将参数传递给工厂,告诉工厂返回哪一个类型的类。这种情况下,类可以共享相同的方法名,但完成的工作可以不同。
- 设计模式之工厂方法
- 设计模式之工厂方法
- 设计模式 之 工厂方法
- 设计模式 之 工厂方法
- 设计模式之工厂方法
- 设计模式之工厂方法
- 设计模式之工厂方法
- 设计模式之工厂方法
- 设计模式之工厂方法
- 设计模式之工厂方法
- 设计模式之工厂方法
- 设计模式之工厂方法
- 设计模式之工厂方法
- 设计模式之工厂方法
- 设计模式之工厂方法
- 设计模式之工厂方法
- 《设计模式》之工厂方法
- 设计模式之--工厂方法
- 检查java代码的几个小工具
- Bootstrap 基础CSS - 按钮(Buttons)
- 好的博客
- 8605 删数问题
- UVA 409 Excuses, Excuses!
- 设计模式之工厂方法模式
- JAutodoc指南
- 11079 可以移动的石子合并
- losetup和mount -o loop
- 酷壳技术博客值得一看
- string 构造 拷贝 和析构函数
- [Php] Realize Php
- oracle定时任务实例
- IE6:display:inline-block解决方案