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

Gee*_*eek 8 oop coupling code-metrics sonarqube

Sonar这样的代码质量度量工具确实能够深入到类并找出以下数量:

  1. 传入(传入)耦合
  2. 传出(传出)耦合

这两个参数是什么?你能用一个简单的人为例子描述一下吗?

mil*_*ose 21

根据维基百科:

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

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

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

class Foo {
    Quux q;
}

class Bar {
    Quux q;
}

class Quux {
    // ...
}
Run Code Online (Sandbox Code Playgroud)

然后Foo,Bar每个都有一个传出耦合,并Quux有两个传入耦合.

  • @user20358 - 我不是最好的架构师,但我认为这没有多大意义。具有太多传入耦合的类可能会被大量使用,因为它的作用太多了。或者它可能只是处理某种横切关注点 - 日志记录、ORM 工作单元等。 (2认同)

ppa*_*rou 9

既然你提到了Sonar,这里是他们的文档页面提供的定义

  • 传入耦合:一类传入耦合是衡量其他多少类使用特定类别的指标.
  • 传出耦合:类传出耦合是对特定类使用多少不同类的度量.


ani*_*dha 9

耦合是依赖性的度量。

传入耦合:

  • 谁取决于你
  • 衡量有多少其他包使用特定包。
  • 传入的依赖项。

传出耦合:

  • 你靠谁
  • 衡量特定包使用了多少不同的包。
  • 传出依赖。