直接通过Map结构,将条件表达式分解, Key 是条件变量,Value是条件表达式返回值。取值很方便,显然高效率O(1)时间复杂度取值。这种重构技巧适合于比较简单的条件表达式场景。
public static int getServiceCode(String str){
int code = 0;
if(str.equals("Age")){
code = 1;
}else if(str.equals("Address")){
code = 2;
}else if(str.equals("Name")){
code = 3;
}else if(str.equals("No")){
code = 4;
}
return code;
}
重构后的代码如下所示:
public static void initialMap(){
map.put("Age",1);
map.put("Address",2);
map.put("Name",3);
map.put("No",4);
}