知识卡片

模块分层规则通过限制跨层依赖降低耦合

普通读书笔记卡 · 2080

内容

模块结构模型把源代码按抽象层级组织成层,从最高(业务概念)到最底层(平台),并定义依赖规则:模块通常只能与同层或直接相邻层的模块通信,禁止跨层调用。这不是审美要求,而是让变更影响范围可预测——改某层时只需理解相邻层,而非全局排查。发散:这与”接口隔离/依赖倒置”是同一思想在代码组织粒度上的应用,性能原因导致的例外应显式记录而非默许蔓延。

参考来源

- 位置:第20章《开发视点》20.2.1节「模块结构模型」(源文件:_epub-src/OEBPS/text00289.html附近) - 结论依据:原文明确说明模块可按抽象等级分层组织为依赖关系栈,并定义层间依赖规则以避免不同抽象层级间不需要的依赖关系,一般规则是模块只与同层或直接相邻层通信,直接支持卡片结论。 - 原始内容:"你可以使用常用的架构方法,对模块按照类似的抽象等级分组为层(layer)。然后你可以从最抽象或者最高的功能(顶端的概念)到最低(位于底层),把这些层组织到依赖关系栈中。然后,你可以定义层间的依赖关系规则,从而避免不同抽象层级上模块间不需要的依赖关系。一般而言,位于模块中的软件只会与同一层或者与其直接相邻层中的其他模块通信(尽管基于性能和效率的原因,对于这个规则通常会有例外)。"