模式3:Cohesive Modules

 由  Michael 发布

描述

高内聚、低耦合是面向对象设计的一个原则。一个模块的内聚性是模块的功能强度的度量,指示一个模块内部各个元素彼此结合的紧密程度

实现变种

影响模块内聚性主要有以下两个关键因素:

  • 模块内类行为变化的速率
  • 模块内的类同时被重用(即复用A的时候同时也会复用B)的可能性

根据上面两点,我们很容易得出以下的结论:

  • 处于相同变化速率的类应该放在同一个模块中
  • 经常会同时被复用到的类应该放在同一个模块中

结果

我们在实际应用的时候往往没能出现上面提到的这么理想的状况,事实上我们更经常会碰到“处于同一变化速率的类但是不经常会被同时复用”以及“经常会被同时复用但是变化速率却相差很多”这两种情况。

对于这两种情况,我们可以这么处理:在开发初期,此时代码是经常变化的,我们可以更侧重将变化速率一致的类放在一个模块,以增加开发速度;当这部分代码稳定之后,我们将经常被同时复用的类归为同一个模块,以增强复用性。

总结

一个模块的行为应该尽量只做一件事,而这个模块内部的行为在数据上和功能上应该有比较强的联系。

查看评论