gpt4 book ai didi

java - 通过删除 if 和 else 条件进行重构

转载 作者:行者123 更新时间:2023-11-30 10:38:54 25 4
gpt4 key购买 nike

我的方法中的以下代码片段使用了很多 if 和 else 条件。我想用某种方式避免它。如何通过为每种类型使用 HashMap 进行配置来实现以下功能?

        boolean success = true;
if (source.isTypeA()) {
if (!model.getPermission || !source.hasAccess) {
success = false;
}
} else if (source.isTypeB()) {
if (source.condition() && (!model.getPermission() || !source.hasAccess)) {
success = false;
}
} else if (source.isTypeC() && (!source.isMobile || !model.getPermission)) {
success = false;
} else if ((source.isTypeD() && source.condition) && (!source.isMobile || !model.getPermission)) {
success = false;
}
return success;

最佳答案

您可以尝试使用一些更多态的解决方案。使用 isSuccess 方法使 source 成为一个接口(interface)。TypeA、TypeB、TypeC 和 TypeD 是该接口(interface)的实现,它们都实现了自己的 isSuccess 版本。那么你根本不需要整个 if 语句。

return source.isSuccess(model);

class TypeA {
public boolean isSuccess(Model model) {
return model.getPermission() && hasAccess();
}
....
}

关于java - 通过删除 if 和 else 条件进行重构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39493057/

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