【设计模式】抽象工厂模式

抽象工厂模式

抽象工厂模式:提供了一个创建一些列相关或相互依赖对象的接口,而无需指定它们具体的类。

先回顾一下简单工厂和工厂方法:

  • 简单工厂:其有一个产品的抽象基类,从中衍生出多个具体的产品。还有一个工厂类,其中通过switch再利用多态的形式,构建产品。
  • 工厂方法:由于简单工厂如果添加产品就会导致更改了工厂类,违反了开闭原则。所以工厂方法将工厂也抽象,由一个工厂基类,派生出与产品类对应的工厂子类。

如果说当工厂生产的产品无法共同抽象出一个工厂基类怎么办?

举个栗子:我生产的运动裤,牛仔裤,卫衣,棉衣。那么我需要的是一个裤子的基类和一个衣服的基类。

抽象工厂的好坏:

-优点:可以很方便得切换两个工厂。
-缺点:但是如果再添加工厂那改的类就需要好多。(可以利用反射机制改进,但C++中没有该机制,带Java中遇到深入看看)

posted @ 2020-01-22 12:31  LampsAsarum  阅读(84)  评论(0编辑  收藏  举报