“数据耦合指两个模块之间有调用关系,传递的是简单的数据值,相当于高级语言的值传递”。
这是网上找的数据耦合的定义,我想问问这个定义中的两个模块指的是什么啊?
如果我想做一个创建和插入节点的功能,写一个创建节点的函数,再写一个插入节点的函数,这两个函数能算两个模块吗?
function create(id){
   var box=document.createElement("div")
   box.setAttribute("id",id)
   return box
}
function append(id){ 
   var box=create(id)
   document.body.appendchild(obj)
}
这个能说append函数中append和create数据耦合了吗?     

解决方案 »

  1.   

    a访问b  那么 a和b 是耦合的
    你那个就是 耦合的 因为 append中访问了 create怎么解耦?function create(id){
       var box=document.createElement("div")
       box.setAttribute("id",id)
       return box
    }
    function append(obj){ 
       document.body.appendchild(obj)
    }//调用
    var box=create(id)
    append(box);那么现在 append 和 create 解耦了 互相不知道对方的存在
    因为 调用代码(也叫 业务逻辑) 组织了他们的关系
      

  2.   

    模块是抽象的概念,LZ可以把你自己的两个函数看作两个模块,也可以把一组通用功能的集合看作一个模块。软件工程中的概念,本来就不好说~~从定义上看,LZ的这两个模块确实是数据耦合了,数据耦合是不可避免的,尽量避免把参数当作函数内部的流程控制的开关变量,因为那样就是控制耦合了。摘抄一段软工的耦合类型的介绍:
      

  3.   

    非常感谢KK3K2005!  如果我一开始写的例子里没有id这个参数传递的话,仅仅是append调用create,那这两个函数间就不算耦合关系了,最多说叫 append 依赖create?