Java 中业务代码经常会遇到多个if-elseif-else让人抓狂
- 不方便运维,每次修改一个业务,会改动整个业务类
- 强耦合,一个类处理所有业务
- 一个类代码太长
优化前
/**
* 签批核心业务方法
* @param userCode 审批人代码
* @return 审批结果信息
*/
public String approval2(String userCode) {
if("ceo".equalsIgnoreCase(userCode)) {
// .... ceo审批业务
return "ceo审批了";
}else if("manager".equalsIgnoreCase(userCode)) {
// ... 部门经理审批
return "部门经理审批了";
}else if("director".equalsIgnoreCase(userCode)) {
// .. 直接主管审批
return "直接主管审批";
}else {
throw new IllegalArgumentException("没有找到该审批人");
}
}
优化后
- 创建一个UserApproval接口用户抽离公共核心审批方法
@Component
public interface UserApproval {
/**
* 用户代码
*/
final String userCode = "";
String getUserCode();