包是一种组织代码的方式,将相关联的类或模块组织在一起。一个包可以包含多个类或模块。
包的内聚性原则
确定包中包含哪些类。
重用发布等价原则(The Reuse-Release Equivalency Principle)REP
定义:
重用的粒度就是发布的粒度。
共同重用原则(The Common Reuse Principle)CRP
定义:
一个包中的所有类应该是共同重用的。如果重用了包中的一个类,那么就要重用包中的所有类。相互之间没有紧密联系的类不应该在同一个包中。
共同封闭原则(The Common Closure Principle)CCP
定义:
一个包中的所有类对于同一类性质的变化应该是共同封闭的。一个变化若对一个包影响,则将对包中的所有类产生影响,而对其他的包不造成任何影响。
包的耦合性原则
确定包之间的相互关系
无环依赖原则(The Acyclic Dependency Principle)ADP
定义:
在包的依赖关系中不允许存在环。细节不应该被依赖。
稳定依赖原则(The Stable Dependency Principle)SDP
定义:
朝着稳定的方向进行依赖。
稳定性:
具有很多输入依赖关系的包是非常稳定的,因为要使所有依赖于它的包能够相容于对它所做的更改,往往需要非常大的工作量。
稳定抽象原则(The Stable Abstract Principle)SAP
定义:
一个包的抽象程度应该和其稳定程度一致。
抽象性:
类和接口应该足够抽象。