static void Main(string[] args) { OrderContext context = new OrderContext(); context.StateEnum = OrderStateEnum.WaitToReceive; context.ProceeOrder(); context.StateEnum = OrderStateEnum.Finished; context.ProceeOrder(); context.StateEnum = OrderStateEnum.Cancel; context.ProceeOrder(); Console.ReadLine(); }
/// <summary> /// 针对订单状态对订单进行处理 /// </summary> /// <param name="context"></param> public virtual void Handle(OrderContext context) { if (context.StateEnum == this.CurrentState) { InnerHandle(context); } else { context.State = NextOrderState; context.ProceeOrder(); } }