耦合与内聚
2018-01-31 09:26
113 查看
耦合是程序结构中模块间相互关联紧密程度的度量,耦合程度取决于各个模块间接口的复杂程度、调用模块的方式,以及接口的信息量。耦合分为七种:
1、 非直接耦合:两个模块之间没有直接关系,它们之间的联系完全是通过主模块的控制和调用来实现的,非直接耦合的模块独立性最强
2、 数据耦合:一个模块访问另一个模块时,彼此之间是通过简单变量(不是控制参数、公共数据结构和外部变量)来交换输入、输出信息的,这种耦合为数据耦合
3、 标记耦合:一组模块通过参数表传递记录信息,就是标记耦合,这个记录是某一数据结构的子结构,而不是简单变更。
4、 控制耦合:一个模块通过传送开关、标志、名字等控制信息,明显地控制选择另一模块的功能,称为控制耦合
5、 外部耦合:一组模块都访问同一全局简单变量而不是同一全局数据结构,而且不是通过参数表传递该全局变量的信息,则称为外部耦合。
6、 公共耦合:若一组模块都访问同一个公共数据环境,则它们之间的耦合就称为公共耦合。公共的数据环境可以是全局数据结构、共享的通信区、内存的公共覆盖区。
7、 内容耦合:一个模块直接访问另一个模块的内部数据;一个模块不通过正常入口转到另一模块内部;两个模块有一部分程序代码重叠;一个模块有多个入口。
内聚是一个模块内部各个元素彼此结合的紧密程度的度量,各元素之间的联系越紧密,内聚性越高,与其他模块间的耦合性就越低,而模块独立性就越强。
在设计模块时应尽量争取高内聚,内聚性分为七种:
1、 功能内聚:实现一个功能,内聚性最强
2、 信息内聚:完成多个功能,各个功能在同一数据结构上操作
3、 通信内聚:模块内各功能部分使用了相同的输入数据或产生相同的输出数据
4、 过程内聚:把流程图中某一部分划出组成模块,即过程内聚,如循环部分、判定部分、计算部分分成三个模块
5、 时间内聚:又称为经典内聚,大多为多功能模块,模块的各个功能的执行与时间有关,如初始化模块和终止模块
6、 逻辑内聚:把几种相关的功能组合在一起,由传送给模块的判定参数来确定执行哪一种功能。
7、 巧合内聚:模块内各部分之间没有联系,或即使有联系,也很松散,是内聚程序最低的模块。
相关文章推荐
- 面向UI编程:ui.js 1.1 使用观察者模式完成组件之间数据流转,彻底分离组件之间的耦合,完成组件的高内聚
- 设计模式:高内聚,低耦合
- 关于模块化设计的内聚和耦合的个人理解
- 如何在struts+spring+hibernate的框架下构建低耦合高内聚的软件
- 高内聚,低耦合(转)
- 如何在struts+spring+hibernate的框架下构建低耦合高内聚的软件
- 理解“高内聚,低耦合”
- 计算机的模块的内聚程度和模块间的耦合程度是什么啊!
- 高内聚 低耦合
- 软件工程中的耦合与内聚
- 低耦合和高内聚
- 模型耦合与模型内聚举例分析
- 高内聚,低耦合的程序设计
- 模块独立(高内聚,低耦合)---总体设计之设计原理
- 高内聚,低耦合?【转】
- 软件工程-耦合内聚
- 什么是高内聚、低耦合?
- 高内聚,低耦合
- 高内聚、低耦合
- 一例看懂C语言程序中的内聚和耦合