创建型设计模式.抽象工厂模式

概念理解

  • 定义:超级工厂创建工厂的封装


    创建型设计模式.抽象工厂模式_第1张图片
    Uploading SimpleFactory_863926.png . . .

AbstractFactory:抽象工厂,定义工厂能够生产哪些产品,即产品簇。
ConcreteFactory:具体工厂,根据不同的需求扩展不同产品簇
AbstractProduct:抽象产品,产品特性抽象
Product:具体产品,根据不同需求创建不同产品

应用和优缺点

  • 解决问题:提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。例如创建产品簇。

  • 应用场景:
    1、QQ 换皮肤,一整套一起换。
    2、生成不同操作系统的程序。

  • 优点:
    1、抽象工厂模式隔离了具体类的生成,使得客户并不需要知道什么被创建。由于这种隔离,更换一个具体工厂就变得相对容易。所有的具体工厂都实现了抽象工厂中定义的那些公共接口,因此只需改变具体工厂的实例,就可以在某种程度上改变整个软件系统的行为。另外,应用抽象工厂模式可以实现高内聚低耦合的设计目的,因此抽象工厂模式得到了广泛的应用。
    2、当一个产品族中的多个对象被设计成一起工作时,它能够保证客户端始终只使用同一个产品族中的对象。这对一些需要根据当前环境来决定其行为的软件系统来说,是一种非常实用的设计模式。

  • 缺点:
    由于AbstractFactory需要定义好能够生产的哪些种类的产品,相当于定义好产品线,如果后期需要扩展产品线,则没办法实现。

三思而后行

  • 三种工厂模式的区别:
    • 简单工厂:根据key、type、字符串等命令来创建对应的产品。
    • 工厂方法:抽象工厂接口或者基类,多态工厂;实现无限的扩充对应的产品和工厂,一个工厂一个产品。
    • 抽象工厂:一个工厂具有生成多种产品的能力,而不仅局限与单一产品。

你可能感兴趣的:(创建型设计模式.抽象工厂模式)