java代码重构总结1

一、返回值优化处理(1)

      待优化代码如下:

ResultData resultData = ResultDataUtil.errorResult(RetInfoConstants.QUERY_USER_REPAYMENT_RECORD_EXC); //初始化有异常的赋值
try {
  if(假设成立){
     resultData = ResultDataUtil.errorResult("返回错误resultData"); // 假设该段逻辑含有返回值,但是没有返回,所以下面的返回值会覆盖掉该返回值,造成预期结果不一致
  }
  resultData = RepPlanService.me.getRepaymentTake(xxxx); // 没有异常的赋值
} catch (Exception e) {
  logger.error("xxxxxxxxxx", e);
  ExceptionLogService.me.saveException(xxxxxxx, "xxxx", e.getMessage());
}
return resultData;

       优化后代码如下:

try {
  if(条件){
    return ResultDataUtil.errorResult("返回错误resultData"); // 返回错误的resultData
  }
    return RepPlanService.me.getRepaymentTake(xxxx); // 返回正常的resultData
} catch (Exception e) {
    logger.error("xxxxxxxxxx", e);
    ExceptionLogService.me.saveException(xxxxxxx, "xxxx", e.getMessage());
    return ResultDataUtil.errorResult(RetInfoConstants.QUERY_USER_REPAYMENT_RECORD_EXC); // 返回异常的resultData
}


优化说明:resultData为返回值;① resultData尽量不需要初始化,赋值操作应该让需要赋值的地方进行赋值。好处:逻辑清晰,IDE能够检测到分支是否都赋值完成。


二、返回值优化处理(2)

         待优化代码如下:

ResultData resultData = null;
try {
  if(a == 1){
     resultData = ResultDataUtil.errorResult("xxx"); // 返回错误的resultData
  }else{
    resultData = ResultDataUtil.successResult("xxx"); // 返回正常的resultData
   }
} catch (Exception e) {
     resultData = ResultDataUtil.errorResult("xxxxx");
}
return resultData;

           优化后代码如下:

ResultData resultData;
try {
  if(a == 1){
     resultData = ResultDataUtil.errorResult("xxx"); // 返回错误的resultData
  }else{

     resultData = ResultDataUtil.successResult("xxx"); // 返回正常的resultData

 }
} catch (Exception e) { 
resultData = ResultDataUtil.errorResult("xxxxx");
}
return resultData;

优化说明:resultData不需要赋初始值,尽量依赖IDE去检查是否有返回,没有IDE将会在编译之前报错,有利于检查各个分支是否有有赋相应的值


三、if else优化

(1) if else尽量少嵌套

             待优化代码如下:

if (null != vo) {
	amount = vo.getAdvanceBalance();
	if(amount != null && amount.compareTo(zero) > 0){
		return this.doSomeThing(appId, loanOrder.getBusCode(), amount, certId, mobile, customerId);
	}else{
		return ResultDataUtil.result(RetInfoConstants.RET_CODE_4001, RetInfoConstants.APPLYPAY_BUSAMT_LESS_ZERO_MAG);
	}
} else {
	return ResultDataUtil.result(RetInfoConstants.RET_CODE_4000, RetInfoConstants.APPLYPAY_BUSAMT_EXC_MAG);
}

              优化后的代码如下:

if (null != vo) {
	amount = vo.getAdvanceBalance();
	if(amount != null && amount.compareTo(zero) > 0){
		return this.doEarlyRepay(appId, loanOrder.getBusCode(), amount, certId, mobile, customerId);
	}
	return ResultDataUtil.result(RetInfoConstants.RET_CODE_4001, RetInfoConstants.APPLYPAY_BUSAMT_LESS_ZERO_MAG);
}
return ResultDataUtil.result(RetInfoConstants.RET_CODE_4000, RetInfoConstants.APPLYPAY_BUSAMT_EXC_MAG);
优化说明:去除不必要的else

四、model设值尽量使用构造函数完成设值


                  待优化的代码如下:

public OrderRecord setOrderRecord(){
	OrderRecord orderRecord = new OrderRecord();
	orderRecord.setRepayStatus(order.getRepayStatus());
	orderRecord.setAppId(SignUtil.getStrId(order.getAppId()));
	orderRecord.setProductName(order.getProductName());
	orderRecord.setAppStatus(order.getAppStatus());
	.....
}

                  优化后代码如下:

new OrderRecord(repayStatus, appId, productName, 
	        appStatus, null, null, null, 
		null, null, null, null,null,null)










评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值