[3] [对象创建] ( 2 ) 抽象工厂 Abstract Factory

总结

  • 解决什么问题?
    用工厂模式解决"一系列相互依赖的对象"的创建问题,
    就用抽象工厂模式(感觉叫家族工厂模式更贴切)
    .
    如果没有应对"多系列对象构建"的需求变化,
    则没有必要使用抽象工厂,
    这时候使用简单的工厂就可以.


  • "系列对象"是什么意思?
    "系列对象"指的是在某一特定系列下的对象之间有相互依赖、
    或作用的关系.
    不同系列的对象之间不能相互依赖.


  • 优点?
    有利于产品的一致性(即产品之间的约束关系)
    (比如生产苹果手机,CPU只能用苹果的,操作系统只能用IOS,操作系统这个子对象不能选安卓)


  • 缺点?
    Abstract Factory模式主要在于应对"新系列"的需求变动.
    其缺点在于难以应对"新对象"的需求变动.
    (比如生产手机时原来只有操作系统 CPU, 新需求突然要加一个SD卡部件, 对基类接口产生影响, 抽象工厂也无法实现开闭原则)




C++例子

image




image




角色结构

image




python例子

image




posted @ 2023-10-24 01:53  qwertzxc  阅读(8)  评论(0)    收藏  举报