DIT(继承深度)或 NOC(子代数)这两个指标中哪一个更容易出问题?

Which of the two metrics DIT (Depth of Inheritance) or NOC (Number of Children) would be more problematic?

DIT(继承深度)或 NOC(子代数)这两个指标中,哪个问题更大?让我们假设 DIT 为 15,NOC 为 15,哪个问题更大,为什么?

根据 Chidamber 和 Kemerer 在 "Towards a metric suite for object-oriented design" depth is preferred to breadth in the hierarchy. The paper "Metrics for maintainability of class inheritance hierarchies" 的说法是一本好书。阅读第一个参考文献,作者认为深度通过继承促进了方法的重用。

高继承深度的主要问题是您在该层次结构的 class 之间创建了高依赖性。假设您有一个 class 层次结构,其中 Class A 作为 parent、Class B 扩展 Class AClass C 扩展 Class B 等等. Class BClass A 有很高的依赖性。但是 Class CClass AClass B 都有很高的依赖性。因此,您增加了与层次结构中每个 children 的耦合。

拥有大量 children 可能并没有那么糟糕,因为您只在 parent 和每个 children.

之间生成依赖关系

object 设计的主要准则之一是高内聚和松耦合。