美文网首页
创建型设计模式.抽象工厂模式

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

作者: 双鱼子曰1987 | 来源:发表于2017-10-31 10:39 被阅读0次

    概念理解

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


      Uploading SimpleFactory_863926.png . . .

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

    应用和优缺点

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

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

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

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

    三思而后行

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

    相关文章

      网友评论

          本文标题:创建型设计模式.抽象工厂模式

          本文链接:https://www.haomeiwen.com/subject/wegvpxtx.html