知识卡片
抽象工厂把产品族内部约束隐藏在工厂内部
内容
除了工厂方法共有的封装性外,[[抽象工厂模式的定义是工厂方法的升级版]]还有独特优点:产品 族内部的业务约束可完全隐藏在工厂内部。如”每生产1个女性就生产1.2个男性”的比例约束可写进 工厂内部逻辑,调用方只说”给我一个黄色女性”,不需知道约束存在。发散:工厂方法只封装”怎么 创建一个对象”,抽象工厂进一步封装”一组对象之间该满足什么内部关系”。
参考来源
- 位置:《设计模式之禅(第2版)》第9章《抽象工厂模式》(源文件:_epub-src/text/part0040.html)
- 结论依据:原文用"每生产1个女性,就同时生产出1.2个男性"的性别比例约束为例,说明"这样的生产过程对调用工厂类的高层模块来说是透明的……具体的产品族内的约束是在工厂内实现的"。
- 原始内容:产品族内的约束为非公开状态……那在抽象工厂模式,就应该有这样的一个约束:每生产1个女性,就同时生产出1.2个男性,这样的生产过程对调用工厂类的高层模块来说是透明的,它不需要知道这个约束。