是否有一个指标可以帮助确定系统或应用程序的面向对象程度?我已经在.NET Reflector Add-ins codeplex项目中看到了一些非常简洁的指标,但还没有类似的指标。如果这样的指标不存在,它甚至可能或有用吗?面向对象编程有三个假定原则:封装、继承和多态性;根据这些原则对程序进行排序的工具可能能够显示C# (或类似)代码库中丢弃了整个面向对象思想的区域,以及与该区域关联的错误数与项目的其余部分相比。
发布于 2010-04-17 20:45:18
好的OO设计的一个有意义的解释是,设计中的对象在逻辑上一致地映射到正在建模的域对象。要解释这一点,需要对您试图解决的问题有深入的了解,包括整体背景。自动化指标还不够复杂,无法以这种方式理解上下文。
作为对这条评论的回应,我想我应该扩展一下:
我希望说明的要点是,OO不是“封装、继承和多态”。这些只是一些工具,可以将问题建模为以明确定义的方式进行交互的对象。如果你想要一个好的指标,你需要了解你真正想要测量的是什么。这听起来像是你试图用一个度量来验证代码质量的“直觉”概念来支持这种感觉。如果是这样的话,真正的潜在问题是什么?你是否担心代码很脆弱,很容易因为意外的副作用而崩溃?对象模型是否过于零散且难以遵循?单个对象是否太大而无法理解和维护?如果您可以更好地定义您希望识别的缺陷类型,它将帮助您找到合适的度量标准。如果他们是有帮助的,这里有一个useful set of metrics。
发布于 2010-08-31 00:31:05
看看面向.NET开发人员的工具NDepend所支持的82个code metrics定义。
https://stackoverflow.com/questions/2658148
复制相似问题