设计模式 抽象工厂模式(Abstract Factory Pattern)

来源:互联网 发布:windows 8 whql 编辑:程序博客网 时间:2024/04/28 14:33

抽象工厂模式

  • 目的
  • 结构
  • 应用
  • 结论

目的

  • 提供一个接口用于创建没有指定具体的类的相关或依赖对象 。

结构


  • AbstractFactory : 声明一个接口创建抽象产品对象的操作。
  • ConcreteFactory :实现创建具体产品对象的操作。
  • AbstractProduct : 声明一个接口类型的产品对象。
  • ConcreteProduct: 定义一个相应的具体工厂创建的产品对象。
  • Client : 只使用AbstractFactory和AbstractProduct声明的接口类。

应用

  • 一个系统应该独立产品的创建,组织,描述。
  • 一个系统应该配置多个系列的产品之一。
  • 一系列相关产品对象被设计在一起使用,你应该准守这个约定。
  • 你应该提供一个产品类库,以及暴露他们的接口,不是实现方法。

结论

  • 隔离具体的类    抽象工厂模型帮助应用程序创建类对象。因为工厂封装了创建产品对象的责任和过程,所以隔离了客户端和类的实现方法。客户端通过抽象接口操作类的实例。产品类名是隔离在具体的实现工厂中,他们不会出现在客户端代码。
  • 产品更换容易    一个具体工厂类的实例化在应用程序中只出现一次。这样使应用程序很容易改变具体工厂的使用。它可以通过改变具体工厂类使用不同的产品配置。
  • 促进产品的一致性     当系列产品被设计为一起使用,重要的是应用程序使用产品对象只能在一个产品系列中。
  • 支持新类型的产品是很困难的     扩展抽象工厂生产新的产品是不容易的,因为抽象工厂接口管理者一系列产品的创建,支持新类型的产品需要扩展工厂接口,这需要涉及到改变抽象工厂类和它所有的子类。





0 0