状态 / 类型定义 策略模式 统一返回码
2026/6/24 12:26:15 网站建设 项目流程

场景 1:状态 / 类型定义

// 订单状态枚举publicenumOrderStatus{UNPAID(0,"待支付"),PAID(1,"已支付"),DELIVERED(2,"已发货"),FINISHED(3,"已完成"),CANCEL(4,"已取消");privatefinalintcode;privatefinalStringdesc;OrderStatus(intcode,Stringdesc){this.code=code;this.desc=desc;}// getterpublicintgetCode(){returncode;}publicStringgetDesc(){returndesc;}}

优势
杜绝硬编码数字0/1/2,可读性强
传入不存在的状态会直接编译报错,提前拦截 bug

场景 2:策略模式``

publicenumPayStrategy{// 每个枚举绑定独立业务逻辑ALIPAY{@Overridepublicvoidpay(Longmoney){System.out.println("支付宝支付:"+money);}},WECHAT{@Overridepublicvoidpay(Longmoney){System.out.println("微信支付:"+money);}},CREDIT{@Overridepublicvoidpay(Longmoney){System.out.println("银行卡支付:"+money);}};// 抽象策略方法publicabstractvoidpay(Longmoney);}// 调用publicclassTest{publicstaticvoidmain(String[]args){PayStrategy.ALIPAY.pay(999L);PayStrategy.WECHAT.pay(299L);}}

场景 3:统一返回码
全局响应码

publicenumResultCode{SUCCESS(200,"操作成功"),FAIL(500,"服务器异常"),PARAM_ERROR(400,"参数非法"),UNAUTHORIZED(401,"未登录"),FORBIDDEN(403,"权限不足");privatefinalIntegercode;privatefinalStringmsg;ResultCode(Integercode,Stringmsg){this.code=code;this.msg=msg;}// getterpublicIntegergetCode(){returncode;}publicStringgetMsg(){returnmsg;}}

接口返回

// 统一返回实体classResult<T>{privateIntegercode;privateStringmsg;privateTdata;// 快速成功返回publicstatic<T>Result<T>success(Tdata){Result<T>res=newResult<>();res.setCode(ResultCode.SUCCESS.getCode());res.setMsg(ResultCode.SUCCESS.getMsg());res.setData(data);returnres;}}

优势
全局统一错误码,前后端不用反复协商文案,修改提示信息仅改枚举一处。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询