第一种方式: 使用枚举
优化前
String orderStatusDes; if (orderStatusCode == 1) { orderStatusDes = "订单未支付"; } else if (orderStatusCode == 2) { orderStatusDes = "订单已支持"; } else if (orderStatusCode == 3) { orderStatusDes = "已发货"; } else if () { .... }
优化后
定义一个枚举
public enum OrderStatusEnum { UNPAY(1, "订单未支持"), PAIDED(2, "订单已支付"), SENDED(3, "已发货"); private int orderStatusCode; private String orderStatusDesc; OrderStatusEnum(int orderStatusCode, String orderStatusDesc) { this.orderStatusCode = orderStatusCode; this.orderStatusDesc = orderStatusDesc; } public String getDesc() { return orderStatusDesc; } static OrderStatusEnum of(int orderStatusCode) { for (OrderStatusEnum temp : OrderStatusEnum.values()) { if (temp.orderStatusCode == orderStatusCode) { return temp; } } return null; } }
然后就可以通过如下方式获取订单状态描述:
// 通过订单状态码获取相应的订单描述 String orderStatusDesc = OrderStatusEnum.of(1).getDesc();
第二种方式: 策略+工厂
略
日拱一卒无有尽,功不唐捐终入海