项目初期的时候,因为有很多异常信息的处理都需要返回响应的结果字符串,每次都是在需要的地方直接写上字符串就好,后来当需求变动,返回的消息有改动的时候,就需要一处一处地查找用到的字符串,非常麻烦,而且不容易纠错。
所以本着优化代码,规范代码的思想,之前有时间将所有的消息都用枚举类型来替代,这样一处修改处处修改,使代码简洁并且增强了重构性
下面就举几个例子来说明一下:
比如订单状态:
public enum OrderStatusEnum {
CANCEL(0,"已取消"),
No_PAY(10,"未支付"),
PAID(20,"已付款"),
SHIPPED(40,"已发货"),
ORDER_SUCCESS(50,"已完成"),
ORDER_CLOSE(60,"订单关闭"),
;
private String msg;
private Integer code ;
public String getMsg() {
return msg;
}
public Integer getCode() {
return code;
}
OrderStatusEnum(Integer code,String value ) {
this.msg = value;
this.code = code;
}
public static OrderStatusEnum codeOf(Integer code){
for (OrderStatusEnum orderStatusEnum:values()){
if(orderStatusEnum.getCode()==code){
return orderStatusEnum;
}
}
throw new MallException(ResponseCode.ERROR);
}
}
比如说购物车状态:
public enum CartStatusEnum {
CHECKED(1,"已勾选"),
UNCHECKED(0,"未勾选"),
LIMIT_NUM_FAIL(3,"数量超过限制"),
LIMIT_NUM_SUCCESS(4,"数量没有超过限制")
;
private Integer code;
private String msg;
CartStatusEnum(Integer code,String msg) {
this.code = code;
this.msg=msg;
}
public Integer getCode() {
return code;
}
public String getMsg() {
return msg;
}
}
例如这样的通过枚举来封装以后代码修改起来方便了,而且增加消息类型,减少消息类型也更容易