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

Java 重构if-else分支的最佳方法是什么,java,if-statement,compiler-construction,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 el

我有一个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"
}

重构这个的最佳方法是什么?这是制作这样的逻辑的最有效的方法吗?

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

过多的
if/else
switch
语句可能表明设计不佳

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


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

取决于您希望在其中执行的逻辑类型。要求是什么。