知识卡片

单一职责原则与识别变化

普通读书笔记卡 · 1979.n

内容

单一职责原则(SRP):一个类应该有且只有一个变化的原因;发现一个类存在多于一个变化点时就应分离变化。与信息专家模式结合的启示:优先按信息专家分配职责,当信息专家承担的职责出现多于一个变化点时,再分离其中一个变化点交给另一对象。航班消息转换例:先按信息专家把转换分配给 Flight;当消息格式/协议不断增多时,改为遵循 SRP 把转换行为分离出去并对协议做统一抽象(FlightTransformer)。识别变化是运用 SRP 的关键——只有正确识别变化,才能以正确方式分离变化。发散:SRP 的“职责”不是“功能个数”,而是“变化原因个数”;判断要问“将来什么会让这个类改动”。

参考来源

- 位置:《解构领域驱动设计》附录A A.2.1(源文件:_epub-src/OEBPS/034.xhtml) - 结论依据:原文给出 SRP 定义、与信息专家模式结合的启示,并强调识别变化是运用 SRP 的关键。 - 原始内容:一个类应该有且只有一个变化的原因……识别变化是运用单一职责原则的关键,只有正确地识别了变化,才能以正确的方式分离变化。