理解内聚与耦合
一、先了解一下什么是模块?
模块就是从逻辑上将系统分解为更细微的部分,分而治之。
复杂问题因为复杂性的问题,比较难解决,但是可以将复杂问题拆解为若干简单问题,逐个击破地解决这些简单问题,最后实现解决复杂问题的效果。
模块的粒度划分可大可小,可以是函数,类或功能块等等。
耦合主要描述的是模块与模块之间的关系,内聚则主要描述的是单个模块的内部构成。
模块独立性指每个模块只完成系统要求的独立子功能,并且与其他模块的联系最少且接口简单,两个定性的度量标准――耦合性和内聚性。
二、耦合
如果模块之间存在依赖,则可能会导致一个模块的改动影响了另外的模块的问题,甚至是相互影响。
两个模块之间的关系越紧密,耦合就越强,模块的独立性就会越差。
比如一个模块A直接操作了模块B中数据,则视为强耦合;若A只是通过数据与模块B交互,则视为弱耦合。
独立的模块便于扩展、维护和单元测试,如果模块之间重重依赖的话,就会极大降低开发效率。
三、内聚
一个模块应当尽可能独立完成某个功能,模块内部的元素关联性越强,则内聚越高,模块单一性就越强。
如果有各种场景需要被引入到当前模块,代码的质量将变得非常脆弱,这种情况建议拆分为多个模块。
低内聚的模块代码,不管是维护、扩展还是重构都相当麻烦。因为要兼顾内部元素的关联性,如果不理清楚的话可能会难以下手。
高内聚的优点:可读性、复用性、可维护性和易变更性
四、内聚类型 与 耦合类型(举例说明)
https://www.cnblogs.com/jiuhefree/articles/13730537.html