重构if else分支的最佳方法是什么

时间:2019-11-08 04:10:11

标签: java if-statement compiler-construction

我有一个if-else分支

if(name.contains(substring)){
    if(name.contains(substring1)){
        return "this";
    }else if(name.contains(substring2)){
        return "that";
    }
    ...
}else if(){
     // if else ladder
}
....//else if ladder continues
else{
    return "them"
}

重构此内容的最佳方法是什么?那是做这样的逻辑的最有效方法是什么?

2 个答案:

答案 0 :(得分:0)

您可以使用switch语句代替梯形图。由于编译器能够优化switch语句,因此通常认为它们更有效。

答案 1 :(得分:0)

if/elseswitch语句过多可能表示设计不良。

在某些情况下,最好使用接口(多态性),例如参见Replace Conditional with Polymorphism

当然不是所有的if都是不必要的。但是最好避免将控制结构与工作尽可能地混合在一起。最后,代码应该易于阅读。