知识卡片

内聚降低变更

普通读书笔记卡 · 2123

内容

类和组件应围绕单一职责组织,让相关变化集中在少数位置。低内聚会让一个功能变更牵动多个无关模块。发散:内聚性不是教条,它衡量的是未来改动能否按业务边界自然落下。

参考来源

- 位置:第6章《敏捷编码》"30 编写内聚的代码"(源文件:_epub-src/OEBPS/text00000.html) - 结论依据:原文用20页ASP应用把展示逻辑、业务逻辑、SQL全堆在一起、数据库表结构微调导致每个页面多处改变的例子,说明低内聚代码变化会形成"涟漪效应",并引用单一职责原则"一个模块应该只有一个发生变化的原因",直接支持卡片结论。 - 原始内容:"如果每个页面都包括展示逻辑、业务逻辑和访问数据的代码,就有太多的东西都堆在一个地方了。假定要对数据库的表结构进行一次微调。这个微小的变化会导致应用中所有的页面发生变化……低内聚性的代码会造成很严重的后果……如果一个类(或者一个组件)变化得过于频繁,这样的改变会对整个系统形成'涟漪效应'……根据单一职责原则……一个模块应该只有一个发生变化的原因。"