耦合是模块之间的相对独立性的度量。耦合取决于各个模块之间接口的复杂程度、调用模块的方式以及通过接口的信息类型等。模块的耦合度越高,则独立性越弱。一般模块的耦合度分为7种类型,从低到高依次为:
还是用我们的联想记忆法:无直接联系的数据标记,却控制着外部的公共内容。
(1)非直接耦合(无直接耦合):两个模块之间没有直接关系,它们之间的联系完全是通过主模块的控制和调用来实现的,它们之间不传递任何信息,因此模块间的耦合性最弱,模块独立性最高。
(2)数据耦合:指两个模块之间有调用关系,传递的是简单的数据值,相当于高级语言中的值传递。
(3)标记耦合:指两个模块之间通过参数表(数据结构)传递记录信息。
(4)控制耦合:指一个模块调用另一个模块时,传递的是控制变量,被调用模块通过该控制变量的值有选择地执行模块内的某一功能。因此,被调用模块内应具有多个功能,那个功能起作用受调用模块控制。也就是说一个模块通过传送开关、标志、名字等控制信息,明显地控制选择另一模块的功能。
(5)外部耦合:模块间通过软件之外的环境联结(如I/O将模块耦合到特定的设备、格式、通信协议上)。
(6)公共耦合:指通过一个公共数据环境相互作用的那些模块间的耦合。
(7)内容耦合:一个模块直接访问另一个模块的内部数据,或者通过非正常入口转入另一个模块内部,或者两个模块有一部分程序代码重叠,又或者一个模块有多种入口。这种模块之间的耦合称之为内容耦合。
感觉是不是通过一句简单的话,就可以把耦合从低到高简单地记性记忆了?这就是联想记忆法的好处,希望对大家考试学习有帮助。