控制耦合例子
public int y;
Public A(string x)
{ if (x=="true")
{ y=1;
}
Else
{ y=0;
}
}
Public void B ( )
{
if (y==1)
{
F( ); // F( )是系统自定义的函数
}
Else
{
G( ); // G( )是系统自定义的函数
}
}
模块A&B之间为控制耦合因为两个模块间传递的y值是用作控制信号的开关量。改善方法就是把B模块调用的函数直接写入A模块中,然后删除B模块。
控制耦合的缺点:
控制耦合增加了模块之间的复杂性
去除模块间控制耦合的方法:
(1)将被调用模块内的判定上移到调用模块中进行
(2)被调用模块分解成若干单一功能模块