传入耦合和一类传出耦合有什么区别?

时间:2013-03-07 13:14:37

标签: oop sonarqube code-metrics coupling

Sonar这样的代码质量指标工具确实可以向下钻取到一个类并查找以下数字:

  1. 传入(传入)耦合
  2. 传出(传出)耦合
  3. 这两个参数是什么?你能用一个简单的人为例子来形容吗?

3 个答案:

答案 0 :(得分:20)

根据wikipedia

  

传入耦合(Ca):其他包中依赖于包中类的类的数量是包的责任的指示。传入=传入。

     

传出耦合(Ce):包中的类所依赖的其他包中的类数是包对外部性的依赖性的指示。 Efferent =传出。

因此,如果您有具有以下结构的类(或包或其他):

class Foo {
    Quux q;
}

class Bar {
    Quux q;
}

class Quux {
    // ...
}

然后FooBar分别有一个传出耦合,Quux有两个传入耦合。

答案 1 :(得分:9)

既然你提到了Sonar,这里是their documentation page

提供的定义
  • 传入耦合:一类传入耦合是衡量方法的尺度 许多其他类使用特定的类。
  • 传出耦合:一类传出耦合是衡量方法的衡量标准 特定类使用了许多不同的类。

答案 2 :(得分:2)

耦合是对依赖性的衡量。

传入耦合:

  • 谁依赖你
  • 衡量其他包使用特定包的数量。
  • 传入依赖项。

传出耦合:

  • 你依赖谁
  • 衡量特定包使用的包的数量。
  • 传出依赖关系。