内容耦合

定义:

是指一个模块依赖另一个模块的内部作业(例如,访问另一个模块的局 域变量),因此修改第二个模块处理的数据(位置、形态、时序)也就影响了第一个模baidu块。


拿现实生活的洗衣机的运行举个例子:


假设程序运行包含一下模块:

(1) 风干弄块(控制转筒的旋转)
  
  开始旋转, 转筒转速达到1000降速,速度降低到100,加速旋转。

 (2)洗衣机盖子保护(打开盖子,停止转筒的旋转)
(3)转筒控制模式


模块(1)(2)的运行都会影响3的状态,特别时模块2(不同阶段的控制不一样)


如果以(3)为一个模块

则有这样的方式

if(盖子保护){


转筒状态 = 停止

}

else if(加速状态 == 模块2.设置状态){

 
转筒状态 = 加速

}

else if(减速状态 == 模块2.设置状态) {

转筒状态 = 减速

}

这里我们访问了模块2的内部数据,而且这个内部数据理论上应该是私有的,所以就发生了内容耦合,模块2的局部变量状态会影响3的运行。


风险点:

  如果我们需要更改模块2的运行机制,分为加速,保持,减速,状态,那么模块3也需要进行更改。



更改方式:

if(盖子保护){

转筒状态 = 停止

}

else if(模块2正在运行){

转筒状态  = 模块2设置需求函数;
}

模块2设置需求函数

{


返回加速,保持或减速。

}


成功解除了数据耦合(局部变量访问的问题)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

友情链接更多精彩内容