我一直在使用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;
为了降低这个分数,你可以添加更多没有子的根类(或者比最深的根类更低)。或者减少层次结构的深度