耦合

模块的独立性的衡量标准有两个
  • 耦合
    耦合的强弱取决于模块接口的复杂程度、调用模块的方式以及通过接口的信息。
  • 内聚
    一个模块内部各个元素彼此结合的紧密程度的度量
七种耦合

原则
尽量使用数据耦合,少用控制耦合,限制使用公共耦合,坚决不用内容耦合。

耦合的强弱
在这里插入图片描述

  1. 内容耦合

    • 一个模块直接访问另一个模块的内部数据(汇编语言会有,比如都要用加法寄存器)
    • 不是通过正常入口转到另一个模块的内部(例如 goto)
    • 两个模块的一部分代码重迭
    • 一个模块有多个入口
  2. 公共耦合

    • 若一组模块都访问同一个公共数据环境(例如面向对象里的类中的static)
    • 公共的数据环境可以是全局数据结构、共享的通信区、内存的公共覆盖区等。
    • 分类
      在这里插入图片描述
    • 公共耦合存在的问题:其中一个模块对数据的修改,将会影响所有的相
      关模块,另外由于无法控制各个模块对公共数据的存取,使软件的可靠
      性和可维护性较差。
  3. 外部耦合

    • 一组模块都访问同一 全局简单变量 而不是同一全局数据结构,而且不是通过参数表传递该全局变量的信息,则称之为外部耦合。
      在这里插入图片描述
  4. 控制耦合

    • 如果一个模块传送给另一个模块的参数中包含了控制信息 (参数是一个函数)
  5. 标记耦合

    • 两个模块之间通过参数表传递一个数据结构的一部分(如某一数据结构的子结构,传递的是一个数组或者结构体),就是标记耦合。
  6. 数据耦合

    • 两个模块之间仅通过参数表传递简单数据(基本数据类型),则称为数据耦合。
  7. 非直接耦合

    • 两个模块之间没有直接关系
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值