返回列表 发帖

耦合和内聚

当一个软件程序被模块化时,它的任务根据一些特性被分成几个模块。众所周知,模块是为了完成某些任务而组合在一起的指令集。不过,它们被视为单个实体,但可以相互引用以协同工作。有一些方法可以用衡量模块设计的质量以及它们之间的交互。这些措施称为耦合和内聚。

内聚
内聚力是一种度量,用于定义模块元素内的内部依赖性程度。内距离越大,程序设计就越好。

有七种类型的内聚:

巧合内聚:它是无计划的和随机的内聚,这可能是为了模块化而将程序分解成更小的模块的结果。因为它是计划外的,它可能会给程序员带来混乱并且通常不被接受。
逻辑内聚:当逻辑上分类的元素被放在一个模块中时,它被称为逻辑内聚。
时间内聚:当模块的元素被组织成在相似的时间点进行处理时,它被称为时间内聚。
过程内聚:当模块的元素组合在一起时,它们按顺序执行以执行任务,称为过程内聚。
通信内聚:当模块的元素组合在一起,按顺序执行并处理相同的数据(信息)时,称为通信内聚。
顺序内聚:当模块的元素因为一个元素的输出作为另一个元素的输入而被分组时,它被称为顺序内聚。
功能内聚:被认为是最高的内聚力,值得期待。功能内聚中的模块元素被分组,因为它们都有助于单个定义良好的功能。它也可以重复使用。
耦合
耦合是一种定义程序模块之间相互依赖程度的度量。它告诉模块在什么级别相互干扰和交互。耦合度越低,程序越好。

有五个级别的耦合:

内容耦合:当一个模块可以直接访问或修改或引用另一个模块的内容时,称为内容耦合。
公共耦合:当多个模块对某些全局数据具有读写访问权限时,称为公共或者全局耦合。
控制耦合:如果其中一个模块决定另一个模块的功能或改变其执行流程,则两个模块称为控制耦合。
戳耦合:当多个模块共享公共数据结构并在其中的不同部分工作时,称为戳耦合。
数据耦合:是指两个模块通过传递数据(作为参数)进行交互。如果模块将数据结构作为参数传递,则接收模块应使用其所有组件。
理想情况下,没有耦合被认为是最好的。

返回列表