/// <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(); } }
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(); }
protected override void InnerHandle(OrderContext context) { Console.WriteLine("订单已取消!"); }
protected override void InnerHandle(OrderContext context) { Console.WriteLine("下单成功,请进行支付......"); }
protected override void InnerHandle(OrderContext context) { Console.WriteLine("订单打包完毕,等待发货......"); }
protected override void InnerHandle(OrderContext context) { Console.WriteLine("订单已发货,请等待收货......"); }
protected override void InnerHandle(OrderContext context) { Console.WriteLine("订单支付成功,等待商家确认订单......"); }
/// <summary> /// 当前状态的处理事件 /// </summary> /// <param name="context"></param> protected abstract void InnerHandle(OrderContext context);
protected override void InnerHandle(OrderContext context) { Console.WriteLine("卖家已确认订单,等待打包商品......"); }