美文网首页
必知必会的设计模式4

必知必会的设计模式4

作者: jkwen | 来源:发表于2021-03-01 11:10 被阅读0次

抽象工厂模式(Abstract Factory Pattern)

属创建型设计模式,「为创建一组相关或相互依赖的对象提供一个接口,而且无须指定他们的具体类」

这个模式建议结合工厂方法模式来理解 必知必会的设计模式3,本身这些东西是比较抽象的,所以在理解的时候建议结合一下实际情况中的一些场景,毕竟这些设计模式也是为了解决实际生产问题的,不然要他们有什么用。我在理解抽象工厂模式的时候,也花了些时间,还回头重新整理回顾了工厂方法模式。

在工厂方法模式中我们知道如果一个工厂可以生产多个产品,如果复杂的话会按产品隔离开变成多工厂模式,这里我们先不隔离开,因为各个产品间是有关联的或者说是有某种关系的,例如,大众集团下有 SUV 汽车,轿跑汽车等产品,它们都属于大众集团(这就是关联)。这些产品就叫产品族,例如 SUV 汽车产品族,轿跑汽车产品族。其次,每个产品族还可进行产品等级划分,一个工厂子类负责一个产品等级的产生,例如大众集团的 SUV 汽车产品族可按产品定位分奥迪 SUV,保时捷 SUV,因此也对应着奥迪工厂和保时捷工厂。

抽象工厂模式.jpg

优缺点

  • 高度封装,调用者不用关心产品实现类。
  • 产品族间的关联或约束是内定的,不受外界影响或改变。
  • 产品等级维度的扩展性好。
  • 产品族的扩展性非常差。

适用场景

其实上面对抽象工厂模式的分析过程就是对适用场景的分析。我的理解是基于一个工厂生产多个产品的前提下,如果每个产品(或者部分产品)已经是一个产品族(或者未来是个产品族),并且也会有产品等级的概念,那就可以用抽象工厂模式。不过对于功能较简单的模块,我觉得不太适合用。

在 Android 中的使用

暂未了解到有明显使用抽象工厂模式的地方。

参考内容

「设计模式之禅(第 2 版)」
「Android 源码设计模式解析与实战」

相关文章

  • 必知必会的设计模式4

    抽象工厂模式(Abstract Factory Pattern) 属创建型设计模式,「为创建一组相关或相互依赖的对...

  • Java面试经典题目六(网络知识及设计模式)

    设计模式(必知必会) 【1】你知道那些设计模式? 答:单例模式、观察者模式、MVC模式、工厂模式、桥接模式、代理模...

  • 代理模式续集

    动态代理 讲代理模式不讲动态代理简直是耍流氓。相比 必知必会的设计模式8[https://www.jianshu....

  • 必知必会的设计模式7

    策略模式(Strategy Pattern) 属行为类设计模式,「定义一组算法,将每个算法封装起来,并且使它们之间...

  • 必知必会的设计模式8

    代理模式(Proxy Pattern) 属结构型设计模式,「为其他对象提供一种代理以控制对这个对象的访问」。 代理...

  • 必知必会的设计模式9

    外观模式(Facade Pattern) 属结构型设计模式,「要求一个子系统的外部与其内部的通信必须通过一个统一的...

  • 必知必会的设计模式10

    责任链模式 属行为型设计模式,「使多个对象(处理者)都有机会处理请求,从而避免请求发起者和处理者之间的耦合关系。将...

  • 必知必会的设计模式1

    装饰模式(Decorator Pattern) 属结构型设计模式,也称包装模式,「动态地给一个对象添加一些额外的职...

  • 必知必会的设计模式2

    桥接模式(Bridge Pattern) 属结构型设计模式,也称桥梁模式,「将抽象和实现解耦,使得两者可以独立地变...

  • 必知必会的设计模式5

    观察者模式(Observer Pattern) 属行为类设计模式,「定义对象间一种一对多的依赖关系,使得每当一个对...

网友评论

      本文标题:必知必会的设计模式4

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