美文网首页
内容耦合

内容耦合

作者: 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设置需求函数

    {


    返回加速,保持或减速。

    }


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

    相关文章

      网友评论

          本文标题:内容耦合

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