定义

为创建一组相关或相互依赖的对象提供一个接口,而且无需指定他们的具体类。即工厂内造工厂。

优点&&缺点

优点

  • 产品族内的约束为非公开状态,在不同的工厂中各种产品之间可能具有不同的相互依赖关系,这些依赖关系由工厂封装在其内部,对于工厂的使用者来说这些依赖是不可见的。
  • 生产线的扩展非常容易。如果要针对同一产品族建立新的生产线,只需实现产品族中的所有产品接口并建立新的工厂类即可。

缺点

产品族本身的扩展非常困难。如果产品族中增加一个新产品类型,则需要修改多个接口,并且会影响已有的工厂类。

抽象工厂实例

实例已上传至github,附上地址:https://github.com/Tab-Tan/design/tree/master/factory/abstractFac