内聚原则
组件内聚原则说明什么东西应该聚合在一起,放在同一个组件中。
1. 重用/发布等价原则(The Reuse/Release Equivalence Principle,REP)
- 重用的粒度就是发布的粒度
- 意味着组件中的所有类必须是紧密相关的,需要共同发布
2. 共同封闭原则(The Common Closure Principle,CCP)
- 将那些会同时修改而且修改目的相同的类放到同一个组件中,而将不会同时修改或修改目的不同的类放入不同的组件中。
- 是单一职责原则(SRP)在组件层面的运用
- 意味着应该将某一类变更所涉及的类聚合在同一个组件中,使得变更造成的影响尽可能局部化。
3. 共同重用原则(The Common Reuse Principle,CRP)
- 不要强迫组件的用户依赖于他不需要的东西。
- 是接口隔离原则(ISP)在组件层面的运用。
- 意味着如果客户代码依赖于一个组件时,它应该依赖于组件中所有的而不是部分的类。
4. 组件内聚张力图
- REP和CCP是黏合性原则,倾向于使组件变大;CRP是排除性原则,倾向于使组件变小
- 架构师的责任是在三者之间做出权衡取舍,找到合适的度。
- 一般而言,项目早期会从三角形的右侧开始,随后逐渐向左移动。