设计模式-05 包设计六大原则

包设计原则六大原则

高内聚 - 重用发布等价原则

重用的力度就是发布的粒度一个包里面的类要么都可重用,要么都不可重用一个包中所有类对同一使用者而言,都可重用

高内聚 - 共同重用原则

一个包中所有类应该共同重用;如果重用了一个类,那么就要重用包中的所有类仅仅依赖其中一部分是不可能的;否则需要进行不必要的重新验证和发布,费时费力

高内聚 - 共同封闭原则

一个包中所有类对于同一种变化应该是共同封闭的一个修改如果对一个包产生影响,则将会对包所有类产生影响,对于其他包不影响通常,可维护性超过可重用性;如果代码需要修改,宁愿集中在一个包改,而不是多个包改

低耦合 - 无环依赖原则

包的依赖关系图不允许存在环

解除环方案

使用依赖倒置原则,抽出接口或者抽象类将相互依赖的A包和B包共同依赖的类移到新包N,A包和B包依赖新包N

TIP

不能自顶向下的设计包包的依赖关系结构和系统的逻辑设计一起增长和演化

低耦合 - 稳定依赖原则

可改变的包位于顶部,依赖底部稳定的包

稳定性

稳定性 = 包内依赖包外类的数量 / (包内依赖包外类的数量 + 包外依赖包内类的数量)0意味着很稳定,1意味着极不稳定

低耦合 - 稳定抽象原则

包的抽象程度应该和其稳定程度一致稳定的包应该是抽象的不稳定的应该是具体的

抽象程度

抽象程度 = 包中抽象类数目 / 包所有类数目0意味着包中没有抽象类