[3] [对象创建] ( 2 ) 抽象工厂 Abstract Factory
总结
-
解决什么问题?
用工厂模式解决"一系列相互依赖的对象"的创建问题,
就用抽象工厂模式(感觉叫家族工厂模式更贴切)
.
如果没有应对"多系列对象构建"的需求变化,
则没有必要使用抽象工厂,
这时候使用简单的工厂就可以.
-
"系列对象"是什么意思?
"系列对象"指的是在某一特定系列下的对象之间有相互依赖、
或作用的关系.
不同系列的对象之间不能相互依赖.
-
优点?
有利于产品的一致性(即产品之间的约束关系)
(比如生产苹果手机,CPU只能用苹果的,操作系统只能用IOS,操作系统这个子对象不能选安卓)
-
缺点?
Abstract Factory模式主要在于应对"新系列"的需求变动.
其缺点在于难以应对"新对象"的需求变动.
(比如生产手机时原来只有操作系统 CPU, 新需求突然要加一个SD卡部件, 对基类接口产生影响, 抽象工厂也无法实现开闭原则)
C++例子


角色结构

python例子

浙公网安备 33010602011771号