【问题标题】:Cohesion VS. Coupling凝聚力VS。耦合
【发布时间】:2011-07-31 15:08:40
【问题描述】:

这个问题将软件视为一棵树,其中:

  • 树中的每个节点代表一些代码单元(例如类\方法\行等)
  • 如果在源代码中 X 设置在 Y 中,则节点 X 是节点 Y 的儿子

这里是T这个词的定义:

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

T这个词是什么?内聚还是耦合?

【问题讨论】:

  • 我闻到了作业的味道?

标签: coupling cohesion


【解决方案1】:

耦合将是水平的,跨节点。在同一棵树内,凝聚力将是垂直的。 所以 T 就是凝聚力。

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

【讨论】:

    【解决方案2】:

    内聚:是模块内的概念,表示模块之间的关系。
    耦合:是模块间的概念,表示模块之间的关系。

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

    更多详情请见this reference

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-14
      • 1970-01-01
      • 2016-07-17
      • 2019-06-30
      • 2015-02-04
      相关资源
      最近更新 更多