コード例 #1
0
        public override void Process(Order order)
        {
            Console.WriteLine("我们开始受理,准备备货!");
            if (order.Minute <= 30 && order.IsCanceled)
            {
                Console.WriteLine("30分钟内可以退货..");

                order.SetState(new CancelOrder());

                order.Action();
            }

            order.SetState(new AcceptAndDeliver());
            order.TaskFinished = false;
            order.Action();
        }
コード例 #2
0
        public override void Process(Order order)
        {
            Console.WriteLine("请仔细检查货物,确认没问题后签收!");

            order.SetState(new Success());
            order.TaskFinished = false;
            order.Action();
        }
コード例 #3
0
        public override void Process(Order order)
        {
            Console.WriteLine("我们开始准备发货..");
            if (order.Minute <= 30 && order.IsCanceled)
            {
                Console.WriteLine("30分钟内可以取消订单..");

                order.SetState(new CancelOrder());
                order.TaskFinished = true;
                order.Action();
            }
            if (!order.TaskFinished)
            {
                order.SetState(new ConfirmationReceipt());
                order.Action();
            }
        }
コード例 #4
0
        static void Main(string[] args)
        {
            Sample.Order order = new Sample.Order();

            order.Minute = 10;
            order.Action();

            order.IsCanceled = true;
            order.Minute     = 20;
            order.Action();

            order.Minute = 31;
            order.Action();

            order.Minute = 50;
            order.Action();


            Console.Read();
        }