1

我想知道是否有一个类似于 Robert Martin 定义的 Package Stability Metric 的指标,可以通过它的 Instability (I) 指标来了解一个包何时应该或不应该依赖另一个包:

Ca = Afferent Couplings
Ce = Efferent Couplings
I = Ce / (Ce+Ca)

但是对于类,不是包内的类与其他包中的类之间的传入和传出耦合;它们在同一个包中的类之间的传入和传出耦合(可能和/或其他包,我真的不知道),通过它的“不稳定性”让人们知道一个类是否应该或不应该依赖于另一个类.

编辑:据推测,不稳定指标衡量改变的原因:不改变比率的原因,但现在我想一想,一个班级应该只有一个改变的理由,这意味着如果存在这样类似的不稳定指标,一个班级'我会为 0,但仍然有一些类确实“使用”其他类的对象实例,使它们依赖于这些类;但我不确定这一点,对此有何见解?

4

1 回答 1

1

传入和传出耦合是类的有效度量,并且可以计算类的不稳定性。您可以在一个类上使用 Instability 来确定在哪里专注于创建稳定或不稳定的类 - 但实际上这可能会导致一些糟糕的设计选择。

例如,不稳定的组件应该尽可能少的依赖(传入耦合),而稳定的类应该尽可能少的依赖(传出耦合)。在富域模型中,很可能存在双向关联——这意味着无论您的类是稳定还是不稳定,您都开始违反与度量相关的“规则”。请注意,在包/组件级别,不鼓励甚至禁止任何循环依赖项。

您最好将精力集中在较大的组件上,即包或层。通常,您希望您的域模型应该是稳定的(当您更改域时,您这样做是因为这代表了对域的实际更改,或者至少是您对域的理解)。更有可能发生变化的事物,例如视觉元素和数据访问组件是不稳定的,并且依赖于域。

于 2011-05-26T23:40:47.310 回答