耦合原则
组件耦合原则用于指导确定组件之间的关系。
1. 无环依赖原则(The Acyclic Depencencies Principle,ADP)
- 组件依赖关系图中不允许出现环,而应该是个有向无环图(DAG)。
- 换言之:组件之间不允许出现双向依赖或循环依赖。
- 可以通过一些手段消除循环依赖:
- 依赖倒置/控制反转
- 抖动(Jitters):随着产品的扩展随时调整依赖结构以消除出现的循环依赖
- 引入第三方作为中介,双方共同依赖第三方
2. 稳定依赖原则(The Stable Dependencies Principle,SDP)
- 依赖关系必须要指向更加稳定的方向。
- 换言之:不稳定的组件依赖于稳定的组件,而不是相反。
- 稳定性指标:I = 扇出依赖 / (扇入依赖 + 扇出依赖)。I越小越稳定。
3. 稳定抽象原则(The Stable Abstractions Principle,SAP)
- 一个组件的抽象程度应该与它的稳定程度保持一致。
- 推论:稳定组件包含更多的接口和抽象基类,不稳定组件包含更多的具体类。
- 抽象度指标:A = (接口和抽象类数量) / 类的总数
4. 主序列
所有组件都应该位于主序列线上,不该偏离太多