如何改进让程序更简化一些 这么写简直太累了

img

img

if(income>=2000 && income<5000){
....
}else if(income<20000){
...
}else if(income<40000){
...
}

代码中的 5000.5+15000.01+3000*0.15 之类的常数直接写成值?

流程就是这样,简化的地方只能是if if 改成if else if

//定义一个数轴list
private statict List<StartAndEndAndFunction> sefList = new ArrayList();
//初始化数轴
static{
    sefList.add(new StartAndEndAndFunction(2000,5000,new CalculationFunciton()));
    sefList.add(new StartAndEndAndFunction(5000,8000,new CalculationFunciton()));
    .....
}

//定义计算方法
pulic statict double getNeedPayMoney(double money){
 //循环进行匹配
    for(StartAndEndAndFunction startAndEndAndFunction : sefList  ){
       if(money>=startAndEndAndFunction.getStart()&&money<startAndEndAndFunction.getEnd()){
           return startAndEndAndFunction.getFunciton.doCalculation(money);
        }
     }
    retrun 0;
}

//StartAndEndAndFunction 的结构
public class StartAndEndAndFunction {
  private double start;
  private double end;
  private  CalculationFunciton calculationFunciton;
  ....
}

//CalculationFunciton是一个接口,有个doCalculation(money)方法,然后每个区间都有自己的实现类
//写的伪代码,就这个意思,不喜勿喷