是否有一个指标可以帮助确定系统或应用程序的面向对象性?我在 .NET Reflector Add-ins codeplex 项目中看到了一些非常简洁的指标,但还没有这样的指标。如果不存在这样的指标,它甚至可能或有用吗?面向对象编程有 3 个假定的原则:封装、继承和多态;一个根据这些对程序进行排名的工具可能能够显示 C#(或类似)代码库中放弃了整个面向对象的理想的区域,以及与该区域相关联的错误数量与项目的其余部分相关联。
问问题
209 次
2 回答
1
对良好 OO 设计的一种有意义的解释是,设计中的对象在逻辑上和一致地映射到正在建模的域对象。解释这一点需要对您要解决的问题有深入的了解,包括整体背景。自动化指标还不够复杂,无法以这种方式理解上下文。
为了回应评论,我想我会扩大一点:
我希望提出的主要观点是,OO 不是“封装、继承和多态”。这些只是能够将问题建模为以明确定义的方式交互的对象的工具。如果您想要一个好的指标,您需要了解您真正想要衡量的内容。听起来您正试图用一个指标来验证代码质量的“直觉”概念来支持这种感觉。如果是这样的话,真正的潜在担忧是什么?您是否担心代码很脆弱并且可能由于意外的副作用而容易损坏?对象模型是否过于分散且难以遵循?单个对象是否太大而无法理解和维护?如果您可以更好地定义您希望识别的缺陷类型,它将帮助您找到合适的指标。有用的指标集。
于 2010-04-17T12:45:18.117 回答
0
查看NDepend for .NET 开发人员工具支持的 82 个代码度量定义。
于 2010-08-30T16:31:04.957 回答