凝聚力VS.耦合

时间:2011-07-31 15:08:40

标签: coupling cohesion

这个问题会像树一样处理软件,其中:

  • 树中的每个节点代表一些代码单元(例如class \ method \ line etc.)
  • 如果源代码X在Y
  • 中设置,则节点X是节点Y的子节点

以下是术语T的定义:

相对于节点X的T是X上的任何更改将导致X的子树内的节点发生更改的概率。

T这个词是什么?凝聚力或耦合力?

2 个答案:

答案 0 :(得分:4)

耦合在节点之间是水平的。凝聚力在同一棵树内是垂直的。 所以T会凝聚力。

两个单独的模块,松散耦合,将在单独的子树中,一个中的更改不会影响另一个。但是如果紧密耦合,一个中的变化可能需要另一个变化,即使它们在单独的子树中。显然这不是T的原因。

答案 1 :(得分:1)

内聚力::这是模块内部的概念,用于指示模块内的关系。
耦合:这是模块间的概念,表示模块之间的关系。

为了确保任何系统或软件具有平衡的灵活性和刚性,应该平衡耦合和内聚。

有关更多详细信息,请参见this reference