gpt4 book ai didi

oop - OO 设计质量指标

转载 作者:行者123 更新时间:2023-12-01 05:14:23 28 4
gpt4 key购买 nike

我正在阅读科学 paper关于 Robert martin 编写的 OO Design Quality Metrics。

在他的论文中,他描述了“一组指标,可用于衡量面向对象设计的质量,根据该设计的子系统之间的相互依赖关系”

他继续谈到应该如何在抽象和不稳定性之间取得良好的平衡。以下是他所写的指标以及如何计算它们:

姓名:包中具体和抽象类(和接口(interface))的数量是包可扩展性的指标。

传入耦合 (Ca) :依赖于包内类的包外类的数量。

传出联轴器 (Ce) :包内依赖于包外类的类的数量。

抽象性 (A) :被分析包中抽象类(和接口(interface))的数量与被分析包中类总数的比率。该度量的范围是 0 到 1,A=0 表示完全具体的包,A=1 表示完全抽象的包。

不稳定(一) :传出耦合 (Ce) 与总耦合 (Ce + Ca) 的比率,使得 I = Ce/(Ce + Ca)。该指标是包装对变化的弹性的指标。该指标的范围是 0 到 1,I=0 表示完全稳定的包,I=1 表示完全不稳定的包。

与主序的距离(D) :包与理想化线 A + I = 1 的垂直距离。该指标是包在抽象性和稳定性之间平衡的指标。正对主序列的包在其抽象性和稳定性方面达到了最佳平衡。理想的包要么完全抽象且稳定(x=0,y=1),要么完全具体且不稳定(x=1,y=0)。该度量的范围是 0 到 1,其中 D=0 表示与主序一致的包,D=1 表示尽可能远离主序的包。

我做了以下简单的设计。

enter image description here

我对最后一个指标(D)感到困惑。如果我计算度量 D(图中的 D'),我得到一个负值 -0.5。但是,如果我阅读说明,则说明该值应介于 0 和 1 之间。另外 wikipedia声明度量接口(interface)也被视为抽象类。但我无法从纸上弥补这一点。这是真的?

enter image description here

我做错什么了吗?相信这个设计,虽然很小,但不是很糟糕吧?

最佳答案

如果D是“距离”那么你应该考虑它的绝对值,论文中的公式也有一个绝对运算符......我不确定你是如何计算距离的,或者我误解了你。

关于考虑抽象类和接口(interface),我认为它们都是提供“接口(interface)框架”的机制,这意味着将依赖关系保持在接口(interface)级别而不是具体类......所以我认为尽管存在一些差异,但将它们视为同一事物是安全的.

关于oop - OO 设计质量指标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22093280/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com