耦合是对一个软件结构内不同模块之间互联程度的度量。耦合强弱取决于模块间接口的复杂程度,进入或访问一个模块的点,以及通过接口的数据。
模块间的耦合度强烈影响着系统的可理解性、可测试性、可靠性和可维护性。
- 耦合程度最低:两个模块每个都能独立工作,而不需要系统对其他模块有更多了解。
- 数据耦合(低耦合):两个模块之间通过参数交换信息
- 控制耦合(中度耦合):传递的信息中有控制信息(尽管有时这种控制信息以数据的形式出现)。可以适当分解后用数据耦合替代
- 特征耦合:被调用的模块可使用的数据多于它确实需要的数据
- 公共环境耦合:两个或多个模块通过公共环境相互作用
公共环境耦合只有两个模块时有以下两种情况
1.一个模块放数据,一个模块取数据。这是数据耦合的一个形式,是比较松散的耦合
2.两个模块都往公共环境里放取数据,这种耦合比较紧密,介于数据耦合和控制耦合之间
两个模块共享数据很多,通过传参数不方便,就利用公共环境耦合
- 内容耦合(最高程度的耦合):下列情况有一个,就发生了内容耦合
- 一个模块访问另一个模块的内部数据
- 一个模块不能通过正常入口而转到另一个模块内部
- 两个模块有一部分程序代码重叠(只可能出现在汇编程序中)
- 一个模块有多个入口(这意味着一个模块有几种功能)
总结,耦合是影响软件复杂程度的重要因素。应该采取下述设计原则
尽量使用数据耦合,少用控制耦合和特征耦合,限制公共环境耦合的范围,完全不用内容耦合
什么是内聚https://blog.csdn.net/weixin_57604284/article/details/121299587?spm=1001.2014.3001.5501