知识卡片
工厂扩展代价
内容
抽象工厂易于替换产品族,却不擅长新增产品种类;每加一种产品,所有具体工厂都要跟着改变。发散:任何抽象都会偏向某个变化方向,先看系统更常换“族”还是换“种类”。
参考来源
- 位置:第3章《创建型模式》3.1节「Abstract Factory(抽象工厂)」8.效果第4点(源文件:_epub-src/OEBPS/Text/part0063.xhtml)
- 结论依据:原文明确列出抽象工厂的缺点——难以支持新种类的产品,因为AbstractFactory接口确定了可以被创建的产品集合,支持新种类的产品需要扩展该工厂接口并涉及所有子类的改变,直接支持卡片对抽象工厂不擅长新增产品种类、每加一种产品所有具体工厂都要跟着改变的论述。
- 原始内容:"难以支持新种类的产品。难以扩展抽象工厂以生产新种类的产品。这是因为AbstractFactory接口确定了可以被创建的产品集合。支持新种类的产品就需要扩展该工厂接口,这将涉及AbstractFactory类及其所有子类的改变。"