简单工厂(Simple Factory)模式
来源:互联网 发布:java实现打印功能 编辑:程序博客网 时间:2024/06/05 17:35
1.类图和源码
角色描述:
- 工厂类(Creator)角色:工厂方法模式的核心,在客户端的直接调用下创建产品对象。
- 抽象产品(Product)角色:由工厂方法模式创建的产品父类,或它们拥有共同的接口。
- 具体产品(ConcreteProduct)角色:工厂方法模式创建的对象。
示例性代码:
1).工厂类:
public class Creator { public static Product factory() { return new ConcreteProduct(); }}
2).抽象产品:抽象产品主要的目的是给所有的具体产品提供一个共同的类型。在最简单的情况下,可以简化成一个标识接口(没有声明任何方法的空接口)。
public interface Product {}
3).具体产品:
public class ConcreteProduct implements Product { public ConcreteProduct() { }}
2.变种
1).抽象产品的省略。仍然以上面系统为例,类图如下:
2).工厂角色与抽象产品角色合并,类图如下:
抽象产品要改成抽象类,不能在使用接口。
3).三个角色合并,类图如下:
3.产品对象的循环使用和登记式的工厂方法
在很多情况下,产品对象可以循环使用,而不是每次都创建一个新的产品对象。工厂方法可以通过登记它所创建的产品对象来达到循环使用的目的。
如果工厂方法总是循环使用一个产品对象,那么这个工厂对象可以使用一个属性来存储这个产品对象,每次客户端调用工厂方法时,工厂方法总是提供一个这个对象;如果工厂方法永远使用固定数目的一些产品对象,而且数目不大时,仍然可以使用一些私有属性存储;如果产品对象的数目不定,或者数目较大,可以使用容器对象存储。
4.缺点
简单工厂模式对“开-闭”原则的支持不够,因为如有有新的产品加入到系统中,就要去修改工厂类。
0 0
- 简单工厂模式(simple Factory Pattern)
- 简单工厂模式(simple factory pattern)
- 简单工厂(Simple Factory)模式
- 简单工厂(Simple Factory)模式
- 简单工厂模式(Simple Factory Pattern)
- 简单工厂模式(Simple Factory)
- 11、简单工厂(Simple Factory)模式
- 设计模式-简单工厂(Simple Factory)
- 简单工厂(simple factory)模式
- 简单工厂(Simple Factory)模式
- 简单工厂模式(Simple Factory)
- 简单工厂模式(Simple Factory Pattern)
- 简单工厂(Simple Factory)模式
- 1.1 简单工厂(Simple Factory)模式
- 简单工厂模式(simple factory pattern)
- 简单工厂(Simple Factory)模式
- 简单工厂模式(Simple Factory)
- 简单工厂模式(Simple Factory Pattern)
- 博客开启日记
- 计算文本的高度并显示在label上出现灰色的线条
- opencv contrib怎么用
- oracle学习之bulk collect用法
- Android ExpandableListView单选以及多选实现
- 简单工厂(Simple Factory)模式
- java日常技巧
- 人格魅力养成
- Java程序员面试宝典(第4版)——互动出版网
- TCP3次握手和backlog溢出
- java中的WeakReference
- Java NIO原理图文分析及代码实现
- 保持一生的友谊
- Xcode7出现Assertion failure in -[UIApplication _runWithMainScene:transitionContext:completion:]