gpt4 book ai didi

java - 减少圈复杂度

转载 作者:搜寻专家 更新时间:2023-10-31 19:32:23 27 4
gpt4 key购买 nike

我有一段代码在降低圈复杂度方面遇到了问题。由于必须匹配多个条件,我不确定进一步分解它的最佳方法。使事情复杂化的是,在其中两种情况下创建了一个新对象,但在第三种情况下却没有(它调用了另一个方法)。这是伪代码:

    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;
}

对其他条件做同样的事情。带有 4 个条件的 if 语句很难阅读。提取这些语句将降低您的方法圈复杂度并使您的代码更具可读性

关于java - 减少圈复杂度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35663772/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com