降低循环复杂性

曾孙子女:

我有一段代码在降低循环复杂性方面遇到问题。由于必须匹配多个条件,因此我不确定将其进一步分解的最佳方法。复杂的事情是,在两种情况下都会创建一个新对象,而在第三种情况下不会创建(它会调用另一个方法)。这是伪代码:

    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
    }
拉斐尔·特莱斯(Rafael Teles):

您应该使用一些抽象条件的方法来重构该代码,高圈表示该代码需要重构。例如,假设:!cond4 && cond3 && cond1 && cond5测试登录用户是否有汽车,那么您应该将条件组合重构为方法:

private boolean loggedUserHasCar() {
    return !cond4 && cond3 && cond1 && cond5;
}

对其他条件做同样的事情。if具有4个条件的陈述很难阅读。提取这些语句将减少方法的循环复杂性,并使代码更具可读性

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章