基本上所有的技术书籍中,高内聚和低耦合都是前后紧挨着出现的,就像阴阳的两极一样,相生相克又相随。那高内聚指的到底是什么意思呢,从程序的设计角度来说的话,“内聚” 指的是 功能内聚,是对 元素职责相关性和功能集中程度的度量。如果一个元素内(类,模块,子系统)的行为职责都高度相关,而且没有加入与元素本身不相关的职责的话,那就可以大言不惭的说该元素在它职责范围内是高内聚的。人也是一样,如果一个人承担了过多不相关的工作,尤其原本不是他的活儿也要他干,工作量不大还好,工作量大了,换谁也会吃不消,不是不能做,而是不擅长,效率低。 现在车轱辘话又要来了,高内聚了自然就能达到低耦合的目标了,但是如果你读过上一篇文章的话,你就会明白,高内聚只不过是实现低耦合的一个手段罢了,低耦合可不单单只是功能上的低耦合,还有架构设计时的低耦合。由于内聚性非常低的元素干了太多与自己不相关的工作,或者需要完成太多的工作(虽然都是职责内的),缺点是显而易见的: 难以理解 难以维护 难以复用 脆弱不堪 上述的这些缺点都非常容易理解,如果我们打开一个 Human ......