什么是平均等级度量,以及如何降低分数


What is exactly is the average hierarchy metric, and how do I reduce the score?

我一直在使用PHPDepend来验证我编写的代码的质量。我不在低/平均列的一个度量是平均层次高度度量。

pdepend.org上的定义是

Average Hierarchy Height度量是继承层次结构的平均深度。在一个有十个类的系统中,ah -值1可以用不同的方式解释,例如:五个类继承自被分析应用程序中的五个其他类,或者五个类继承自单个根类。

我的脑子就是不明白这句话在说什么,这意味着我正在努力想办法如何降低给出的分数。

class A{}
class A1 extends A{} // 1 depth
class A11 extends A1{} // 2 depth
class A12 extends A1{} // 2 depth
class B{}
class B1 extends B{} // 1 depth
class C{}
class D{}

有A、B、C、D 4类根

  • 层次结构有2个深度
  • B层次结构的深度为1
  • C层次结构的深度为0
  • D层次结构深度为0

它的和是3。

AHH = 3/4 = 0.75

从代码

if (($count = count($this->rootClasses)) > 0) {
    $this->ahh = array_sum($this->rootClasses) / $count;

为了降低这个分数,你可以添加更多没有子的根类(或者比最深的根类更低)。或者减少层次结构的深度