SpringBoot框架下的If-else代码优化
1 为什么要去if-else
在开发的过程中我们可能会经常遇到if else的逻辑,写很多if else对于一位有情怀的程序员看来是不可以接受的,也影响阅读人的阅读感受,同时程序也违背了对修改关闭扩展开放的原则。在写程序的过程中我们应该尽量保证修改关闭,也就是说自己的写的代码逻辑应不该让别人在扩展逻辑的过程中进行修改,同时保证高的可扩展性。
在使用if else写程序的过程中你可能会写出如下的代码:
String type= "";
if(type.equals("类型一")){
}else if(type.equals("类型二")){
}else if(...){
}else {
}
需要加一个分支逻辑就必须得去if else结构中改代码,这样不利于程序扩展,同时也非常难维护,如果业务复杂到一定的程度这块代码可能没法去重构了。
2 案例重现
2.1 案例需求
假设对于学校使用仪器要进行网上收费,然后学校可根据不同主体,比如课题组或者个人进行收费。也具有不同的收费模式。那么对于原先的代码来说需要进行多个if-else判断,代码示例如下:
public void chargeBackAndReturnResult(String chargeType,String chargeBody) {
if(chargeBody.equals("Personal")){
if(chargeType.equals("Credit")){
System.out.println("执行收费主体为个人的信用卡收费模式");//真实业务代码有200行左右
}else if(chargeType.equals(" deposit")){
System.out.println("执行收费主体为个人的储蓄卡收费模式");
}
}else if(chargeBody.equals("CommonTeam")){
if(chargeType.equals("Credit")){
System.out.println("执行收费主体为课题组的信用卡收费模式");