耦合:模块之间的依赖程度。耦合和内聚是相反的。耦合关注的是模块之间的依赖程度。内聚关注的是模块内的结合程度。
耦合的分类:
1. 无耦合
好处:不依赖其他模块,减少了调用接口的出错几率。
坏处:什么都要自己造轮子,比如log, database.
2. 消息耦合
耦合关系体现在消息的传递上,仅仅是一个信号或者调用类的方法。既不需要传参数,也不需要了解被调用方的内部逻辑,更不需要控制调用方内部的逻辑。
3. 数据耦合
耦合关系体现在通过参数传递基本数据。
传递的参数是基本数据类型,而不是数据结构。不是通过全局数据/配置文件/共享内存等其他方式。
4. 数据结构耦合
耦合关系体现在传递的数据是数据结构。
5. 控制耦合
耦合关系现在在一个模块可以通过某种方式来控制另一个模块的行为。例入常见的工厂类。
6.外部耦合
耦合关系体现在两个模块依赖相同的外部数据格式/通讯协议/设备接口。比如鼠标接口。
7. 全局耦合
耦合关系体现在两个模块共享相同的全局数据。
8. 内容耦合
耦合关系体现在一个模块依赖于另一个模块的全部内容(主要是数据成员)。