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

包设计原则六大原则

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

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

高内聚 - 共同重用原则

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

高内聚 - 共同封闭原则

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

低耦合 - 无环依赖原则

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

解除环方案

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

TIP

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

低耦合 - 稳定依赖原则

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

稳定性

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

低耦合 - 稳定抽象原则

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

抽象程度

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


分享到:


相關文章: