二、耦合:

1、内容耦合: 一个模块直接修改或操作另一个模块的数据,或者直接转入另一个模块。

例:c++中的友元类,类A是类B的友元类,那么A则可随意的修改类B的数据。

2、公共耦合: 两个以上的模块共同引用一个全局数据项。

例:类A和类B公用类C的数据成员,并通过类C的数据成员进行沟通。

3、控制耦合:一个模块在界面上传递一个信号控制另一个模块,接收信号的模块的动作根据信号值进行调整。

例:模块A获取用户类型(普通用户、高级用户)传递给模块B,模块B根据不同类型的用户提供不同的服务。这种情况下模块A和模块B就是控制耦合。

4、数据耦合:模块间通过参数传递基本类型的数据。

例:模块A实现两个数的加法操作,模块B实现两个加数的初始化,模块B将两个加数传给模块A,模块A进行相加。这种情况下模块A和模块B就是数据耦合。