【发布时间】:2010-04-17 11:11:14
【问题描述】:
是否有一个指标可以帮助确定系统或应用程序的面向对象性?我在 .NET Reflector Add-ins codeplex 项目中看到了一些非常简洁的指标,但还没有这样的指标。如果不存在这样的指标,它甚至可能或有用吗?面向对象编程有 3 个假定的原则:封装、继承和多态;根据这些对程序进行排名的工具可能能够显示 C#(或类似)代码库中放弃了整个面向对象的理想的区域,以及与该区域与项目的其余部分相关联的错误数量。
【问题讨论】:
-
这取决于您是否认为使用继承自动是一件好事 - 根据我的经验,大多数开发人员使用它非常糟糕。
-
我正在寻找一个客观的衡量标准,看看这些原则是否得到了应用,此时我可以开始对其有效性得出结论。我想关于开发人员如何错误地使用语言或范式特性的轶事证据将成为社区 wiki 问题的范围,我现在正试图避免。
-
有类耦合和继承深度的度量,分别是封装和复杂度的粗略衡量。它们不是衡量模式是否为“OO”的具体衡量标准,而是衡量您需要一次理解多少代码才能理解给定类的衡量标准。
标签: .net oop code-metrics