作业
作业:
一.状态or类型定义
// 订单状态枚举
public enum OrderStatus {
UNPAID(0, "未支付"),
PAID(1, "已支付"),
DELIVERED(2, "已发货"),
FINISHED(3, "已完成");
private final int code;
private final String desc;
OrderStatus(int code, String desc) {
this.code = code;
this.desc = desc;
}
// 根据code获取枚举
public static OrderStatus getByCode(int code) {
for (OrderStatus status : values()) {
if (status.code == code) {
return status;
}
}
return null;
}
// getters
public int getCode() { return code; }
public String getDesc() { return desc; }
}
二.策略模式:
// 支付策略枚举
public enum PayStrategy {
WECHAT_PAY("wechat") {
@Override
public void pay(int amount) {
System.out.println("微信支付:" + amount + "元");
}
},
ALIPAY("alipay") {
@Override
public void pay(int amount) {
System.out.println("支付宝支付:" + amount + "元");
}
},
CREDIT_CARD("card") {
@Override
public void pay(int amount) {
System.out.println("银行卡支付:" + amount + "元");
}
};
private final String type;
PayStrategy(String type) {
this.type = type;
}
public abstract void pay(int amount);
// 根据类型获取策略
public static PayStrategy getStrategy(String type) {
for (PayStrategy strategy : values()) {
if (strategy.type.equals(type)) {
return strategy;
}
}
throw new IllegalArgumentException("不支持的支付方式");
}
}
// 使用示例
public class Main {
public static void main(String[] args) {
String payType = "alipay";
int amount = 100;
// 无需if/else,直接获取策略执行
PayStrategy.getStrategy(payType).pay(amount);
}
}
三.统一返回码:
// 统一响应码枚举
public enum ResultCode {
SUCCESS(200, "操作成功"),
FAIL(500, "服务器异常"),
PARAM_ERROR(400, "参数错误"),
UNAUTHORIZED(401, "未授权"),
FORBIDDEN(403, "禁止访问");
private final int code;
private final String message;
ResultCode(int code, String message) {
this.code = code;
this.message = message;
}
// getters
public int getCode() { return code; }
public String getMessage() { return message; }
}
// 统一响应体
public class Result
private int code;
private String message;
private T data;
// 成功响应
public static
Result
result.setCode(ResultCode.SUCCESS.getCode());
result.setMessage(ResultCode.SUCCESS.getMessage());
result.setData(data);
return result;
}
// 失败响应
public static
Result
result.setCode(code.getCode());
result.setMessage(code.getMessage());
return result;
}
// getters & setters
public int getCode() { return code; }
public void setCode(int code) { this.code = code; }
public String getMessage() { return message; }
public void setMessage(String message) { this.message = message; }
public T getData() { return data; }
public void setData(T data) { this.data = data; }
}

浙公网安备 33010602011771号