因此,我一直在研究设计模式,并且在单一责任原则的背景下,我尝试使用Metrics和JArchitect计算Java中缺乏内聚力的方法(LCOM)。这两个程序总是计算LCOM为1,尽管在某些情况下它显然不是。即使下面的低内聚力标准示例在这些程序中也有1的LCOM:
package com.StyleM;
public class NumberManipulator {
private int number;
public int numberValue() {
return number;
}
public void addOne() {
number++;
}
public void subtractOne() {
number--;
}
}据我理解,本例中的LCOM应该是1-(3/4) = 0.25,因为总共有4个方法(包括构造函数),其中3个使用了number字段。我做错了什么?
发布于 2022-04-28 23:19:14
对于LCOM的计算,运算是:数的非相干对-相干对的个数。在您的示例中,我们可以说结果是0-3=-3。
通常情况下,对于LCOM来说,通常不出现负值,因此,在一个负数为结果的情况下,我们说最优的是LCOM= 0。
关于程序的结果,我要说,它们只是有一个不同的实现来计算它。
https://stackoverflow.com/questions/71814349
复制相似问题