美文网首页
内容耦合

内容耦合

作者: jonah_king | 来源:发表于2017-03-05 11:03 被阅读0次

定义:

是指一个模块依赖另一个模块的内部作业(例如,访问另一个模块的局 域变量),因此修改第二个模块处理的数据(位置、形态、时序)也就影响了第一个模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设置需求函数

{


返回加速,保持或减速。

}


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

相关文章

  • 内容耦合

    定义: 是指一个模块依赖另一个模块的内部作业(例如,访问另一个模块的局 域变量),因此修改第二个模块处理的数据(位...

  • 结构化设计原则

    如果模块间必须存在耦合,就尽量使用数据耦合。少用控制耦合,限制公共耦合的范围,尽量避免使用内容耦合。 几种常见耦合...

  • 《编写可测试javascript》 第二章 复杂度(一)

    目录 代码大小 JSLint 圈复杂度 重用 扇出 扇入 耦合(耦合度由大到小排列)内容耦合公共耦合控制耦合印记耦...

  • 耦合性分类和总结

    (1) 内容耦合:如果发生下列情形,两个模块之间就发生了内容耦合 1. 一个模块直接访问另...

  • 耦合和解耦合

    程序的耦合 耦合:程序间的依赖关系包括:类之间的依赖方法间的依赖 解耦:降低程序间的依赖关系 实际开发中应该做到:...

  • 变压器耦合电路

    耦合就是电路与电路之间的连接方式。耦合有直接耦合、阻容耦合、变压器耦合以及光电耦合等。变压器耦合电路示例如下图:

  • 耦合

    有时看似复杂的问题,可能只是一个简单的小问题与一系列不确定的事件耦合在一起,造成难以理解的现象。 需要透过现象,设...

  • 耦合

    耦合性(Coupling)(或称耦合力或耦合度)是一种软件度量,是指一程序中,模块及模块之间信息或参数依赖的程度。...

  • 耦合

    文/星畔 天际划过一缀星光,我擦了擦眼睛,觉得那不是真的,我许久没见过真正的流星了。 你我本各行其路,却因铜线相连...

  • 耦合

    耦合性(英语:Coupling,dependency,或称耦合力或耦合度)是一种软件度量,是指一程序中,模块及模块...

网友评论

      本文标题:内容耦合

      本文链接:https://www.haomeiwen.com/subject/bppjgttx.html