一个简单的订单状态的java枚举类

public enum OrderStatus {
    /**
     * 订单已创建,等待付款
     */
    CREATED("已创建"),
    
    /**
     * 付款成功,等待发货
     */
    PAID("已付款"),
    
    /**
     * 订单已发货
     */
    SHIPPED("已发货"),
    
    /**
     * 订单已完成
     */
    COMPLETED("已完成"),
    
    /**
     * 订单已取消
     */
    CANCELLED("已取消"),
    
    /**
     * 退款中
     */
    REFUNDING("退款中"),
    
    /**
     * 退款完成
     */
    REFUNDED("已退款");

    private String description;

    OrderStatus(String description) {
        this.description = description;
    }

    public String getDescription() {
        return description;
    }
}
在这个示例中,我们定义了一个名为OrderStatus的枚举,它包含了订单可能经历的几种状态,如CREATED(已创建)、PAID(已付款)、SHIPPED(已发货)等,并为每个状态提供了相应的中文描述。每个枚举值都有一个构造函数用于初始化其描述,并提供一个getDescription()方法来获取该状态的描述信息。这样的设计使得代码更加清晰易读,同时也便于维护和扩展。

  • 5
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,以下是一个简单订单状态机的Java代码实现: ```java public class OrderStateMachine { // 订单状态枚举 public enum State { CREATED, PAID, SHIPPED, DELIVERED, CANCELLED } // 订单事件枚举 public enum Event { PAYMENT_RECEIVED, ITEM_SHIPPED, ITEM_DELIVERED, ORDER_CANCELLED } // 状态转移函数 private static final Map<State, Map<Event, State>> TRANSITIONS = new HashMap<>(); static { TRANSITIONS.put(State.CREATED, new HashMap<>()); TRANSITIONS.get(State.CREATED).put(Event.PAYMENT_RECEIVED, State.PAID); TRANSITIONS.get(State.CREATED).put(Event.ORDER_CANCELLED, State.CANCELLED); TRANSITIONS.put(State.PAID, new HashMap<>()); TRANSITIONS.get(State.PAID).put(Event.ITEM_SHIPPED, State.SHIPPED); TRANSITIONS.get(State.PAID).put(Event.ORDER_CANCELLED, State.CANCELLED); TRANSITIONS.put(State.SHIPPED, new HashMap<>()); TRANSITIONS.get(State.SHIPPED).put(Event.ITEM_DELIVERED, State.DELIVERED); // DELIVERED 和 CANCELLED 状态没有转移函数 } private State currentState; public OrderStateMachine() { this.currentState = State.CREATED; } // 触发事件,更新状态 public void trigger(Event event) { State nextState = TRANSITIONS.get(currentState).get(event); if (nextState != null) { currentState = nextState; } } // 获取当前状态 public State getState() { return currentState; } } ``` 使用示例: ```java OrderStateMachine stateMachine = new OrderStateMachine(); System.out.println(stateMachine.getState()); // CREATED stateMachine.trigger(Event.PAYMENT_RECEIVED); System.out.println(stateMachine.getState()); // PAID stateMachine.trigger(Event.ITEM_SHIPPED); System.out.println(stateMachine.getState()); // SHIPPED stateMachine.trigger(Event.ITEM_DELIVERED); System.out.println(stateMachine.getState()); // DELIVERED stateMachine.trigger(Event.ORDER_CANCELLED); System.out.println(stateMachine.getState()); // CANCELLED ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值