设计模式抽象工厂模式

Posted lampsasarum

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了设计模式抽象工厂模式相关的知识,希望对你有一定的参考价值。

抽象工厂模式

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

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

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

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

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

技术图片
技术图片

抽象工厂的好坏:

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

以上是关于设计模式抽象工厂模式的主要内容,如果未能解决你的问题,请参考以下文章

简单工厂模式+工厂方法模式+抽象工厂模式

设计模式——抽象工厂模式

工厂模式抽象工厂模式策略模式

java抽象工厂的使用意图是啥?

工厂模式 - 抽象工厂

设计模式之抽象工厂模式