【发布时间】:2016-02-26 23:43:48
【问题描述】:
我有一段代码在降低其圈复杂度时遇到问题。由于必须匹配多个条件,我不确定进一步分解它的最佳方法。使事情复杂化的是,在其中两种情况下创建了一个新对象,但在第三种情况下没有创建(它调用另一个方法)。这是伪代码:
if (!cond3 && !cond1 && cond2 && cond4) {
// actions to perform
calculateValues();
return result;
} else if (!cond1 && cond2 && cond3) {
// actions to perform
Object result = new Result();
return result;
} else if (!cond4 && cond3 && cond1 && cond5) {
// actions to perform
Object result = new Result();
return result;
} else {
// throw error because inputs are invalid
}
【问题讨论】:
-
问题是 Sonar 说 CC 是 12,我们的阈值是 10。我觉得它也很好,但我们必须遵守这个阈值。
标签: java cyclomatic-complexity