知识卡片

多工厂模式用职责清晰换取维护成本

普通读书笔记卡 · 1853.a.4

内容

当单个工厂方法要负责多种产品的复杂初始化逻辑时,塞进同一方法会臃肿难读。多工厂模式让 每个产品对应一个独立工厂类,职责单一,符合SRP;代价是工厂类数量随产品类同步增长,扩展 一个产品就要新建一个工厂。复杂系统常在多工厂之上加协调类封装选择逻辑。发散:这是把 “创建逻辑复杂度”从方法内部分支转移成类间映射关系,复杂度并未消失。

参考来源

- 位置:《设计模式之禅(第2版)》第8章《工厂方法模式》(源文件:_epub-src/text/part0036.html) - 结论依据:原文说明每个产品类对应一个创建工厂后"创建类的职责清晰,而且结构简单,但是给可扩展性和可维护性带来了一定的影响……因为工厂类和产品类的数量相同,维护时需要考虑两个对象之间的关系",并建议复杂应用增加协调类封装子工厂。 - 原始内容:每个人种(具体的产品类)都对应了一个创建者……非常符合单一职责原则……如果要扩展一个产品类,就需要建立一个相应的工厂类,这样就增加了扩展的难度……在复杂的应用中一般采用多工厂的方法,然后再增加一个协调类,避免调用者与各个子工厂交流。