有没有一种度量方法可以帮助确定系统或应用程序的面向对象程度?我在.NET Reflector Add-ins代码库项目中看到了一些非常不错的度量方法,但还没有像这样的。如果不存在这样的度量标准,那么它是否可能或有用?面向对象编程有三个假定原则:封装、继承和多态;一个能够根据这些原则对程序进行排名的工具可能能够显示出C#(或类似语言)代码库中整个面向对象理念被抛弃的区域,并且也许能够显示与该区域相关联的错误数量与项目其余部分相比。
针对评论,我想进一步扩展一下:
我希望表达的主要观点是,面向对象编程不仅仅是“封装、继承和多态”。这些只是工具,可以使问题建模为以明确定义的方式相互作用的对象。如果你想要一个好的度量标准,你需要了解你真正想要衡量的东西。听起来你正在试图用指标来支持你的感觉,验证代码质量。如果是这样,那么真正的关注点是什么?你是否担心代码容易因意外副作用而变得脆弱并容易破坏?对象模型是否过于分散且难以理解?个别对象是否太大而难以维护?如果你能更好地定义你希望识别的缺陷类型,它将有助于你找到适当的指标。如果有用的话,这里有一个有用的指标集。