创建型模式--各种工厂模式[读书笔记]
2007-06-26 21:01
218 查看
工厂模式有三种 分别为: 简单工厂,工厂方法,抽象工厂
简单工厂模式
X是一个基类,XY和XZ等是X的派生子类,编写一个XFactory类,该类实现的功能是根据传递的参数决定返回哪个派生子类的实例,返回哪个实例完全取决与工厂类.简单工厂模式能返回的具有同样方法的类的实例,它们可以是不同的派生子类的实例,也可以是毫无关系仅仅是使用了相同接口的类.
工厂方法模式
我们平时用得最多的工厂模式,类的创建模式,其用意是定义一个创建产品对象的工厂接口,将实际创建工作推迟到子类中。工厂方法模式是简单工厂模式的进一步抽象和推广。由于使用了多态性,工厂方法模式保持了简单工厂模式的优点,而且克服了它的缺点(在简单工厂模式中只有一个具体的工厂,而在工厂方法模式中有一个工厂层次结构)。在工厂方法模式中,核心的工厂类不再负责所有产品的创建,而是将具体创建工作交给子类去做。这个核心类仅仅负责给出具体工厂必须实现的接口,而不接触哪一个产品类被实例化这种细节。这使得工厂方法模式可以允许系统在不修改工厂角色的情况下引进新产品。
如果工厂方法模式中的工厂层次结构退化成为一个具体工厂,那么工厂方法模式就退化成了简单工厂模式。
何时使用工厂方法:
一个类无法预测它要创建的对象属于哪一个类.
一个类用它的子类来指定所创建的对象
抽象工厂模式
提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类.工厂类是抽象的,可以由一个基类工厂类生成其他工厂类,每个工厂类都可以负责自己产品的创建.
简单工厂模式
X是一个基类,XY和XZ等是X的派生子类,编写一个XFactory类,该类实现的功能是根据传递的参数决定返回哪个派生子类的实例,返回哪个实例完全取决与工厂类.简单工厂模式能返回的具有同样方法的类的实例,它们可以是不同的派生子类的实例,也可以是毫无关系仅仅是使用了相同接口的类.
工厂方法模式
我们平时用得最多的工厂模式,类的创建模式,其用意是定义一个创建产品对象的工厂接口,将实际创建工作推迟到子类中。工厂方法模式是简单工厂模式的进一步抽象和推广。由于使用了多态性,工厂方法模式保持了简单工厂模式的优点,而且克服了它的缺点(在简单工厂模式中只有一个具体的工厂,而在工厂方法模式中有一个工厂层次结构)。在工厂方法模式中,核心的工厂类不再负责所有产品的创建,而是将具体创建工作交给子类去做。这个核心类仅仅负责给出具体工厂必须实现的接口,而不接触哪一个产品类被实例化这种细节。这使得工厂方法模式可以允许系统在不修改工厂角色的情况下引进新产品。
如果工厂方法模式中的工厂层次结构退化成为一个具体工厂,那么工厂方法模式就退化成了简单工厂模式。
何时使用工厂方法:
一个类无法预测它要创建的对象属于哪一个类.
一个类用它的子类来指定所创建的对象
抽象工厂模式
提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类.工厂类是抽象的,可以由一个基类工厂类生成其他工厂类,每个工厂类都可以负责自己产品的创建.
相关文章推荐
- 创建型模式(二):AbstractFactory ( 抽象工厂 )
- [设计模式-创建型]工厂方法(Factory Method)
- 设计模式之我的理解----创建型模式:工厂方法
- 设计模式(一)工厂模式Factory(创建型)
- 创建型模式-简单工厂
- 设计模式-创建型模式(读书笔记)
- 创建型模式-简单工厂方法(simple_factory)
- 设计模式(一)工厂模式Factory(创建型)
- 【设计模式】创建型模式之工厂方法Factory Method
- 创建型模式--工厂方法
- 创建型模式之工厂方法模式
- [C#]设计模式-工厂方法-创建型模式
- 设计模式二:abstract factory 抽象工厂——对象创建型模式
- 设计模式四:Factory method工厂方法——对象创建型模式
- 设计模式(一)工厂模式Factory(创建型)(转)
- 设计模式(一)工厂模式Factory(创建型)
- 设计模式(三):创建型模式—Factory Method(工厂方法)
- 设计模式——创建型设计模式总结(简单工厂、普通工厂、抽象工厂、建造者、原型和单例)
- 创建型之工厂模式
- 设计模式之创建型工厂