我有一段代码在降低循环复杂性方面遇到问题。由于必须匹配多个条件,因此我不确定将其进一步分解的最佳方法。复杂的事情是,在两种情况下都会创建一个新对象,而在第三种情况下不会创建(它会调用另一个方法)。这是伪代码:
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
}
您应该使用一些抽象条件的方法来重构该代码,高圈表示该代码需要重构。例如,假设:!cond4 && cond3 && cond1 && cond5
测试登录用户是否有汽车,那么您应该将条件组合重构为方法:
private boolean loggedUserHasCar() {
return !cond4 && cond3 && cond1 && cond5;
}
对其他条件做同样的事情。if
具有4个条件的陈述很难阅读。提取这些语句将减少方法的循环复杂性,并使代码更具可读性
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句