抽象工厂模式

三种工厂模式的关系:
自己理解:
由开始的一家小公司。(简单工厂模式)
到公司规模扩大,开设分公司,每个分公司有专门的一个功能。(工厂方法模式)
最后公司规模继续扩大,分公司的单一生产不满足,将分公司升级为可以由多个功能的组合。(抽象工厂模式)
工厂方法模式和抽象工厂模式的关系
工厂方法模式是一个产品等级结构,而抽象工厂模式是多个产品等级结构。

  1. 抽象工厂的定义
  • 准确定义:抽象工厂模式提供了一系列相关或相互依赖的接口,而无需指定他们的具体类。
  • 通俗定义:是工厂方法模型的进一步升级,也是工厂的进一步扩大(进一步抽象)。是为创建一组对象提供的解决方案,相比较工厂方法模式中的具体工厂是负责创建一族产品。
    3. 抽象工厂核心:
  • 产品等级结构:同一类产品。eg:抽象类 电视机 继承类:海尔电视,海信电视机。。。。 这样的抽象类与继承类之间的关系就是一个产品等级结构。
  • 产品族:指由同一工厂生产的位于不同产品等级结构的产品。

4. 抽象工厂模型图:
Java设计模式——3.抽象工厂模式
抽象工厂模式结构中角色:

  • 抽象工厂
  • 具体工厂
  • 抽象产品
  • 具体产品

5. 缺点:
增加新的产品等级结构麻烦,需要对抽象工厂,具体工厂都要修改,违反了开闭原则。
6. 优点:
增加新的产品族很方便,符合开闭原则。
7. 使用环境:

  • 用户不必关心对象的创建和组合。
  • 每次只使用其中的一个产品族。
  • 属于同一个产品族的产品在一起使用。
  • 产品的等级结构稳定。

相关文章: