Esempio n. 1
0
        static void Main(string[] args)
        {
            Context context = new Context();

            context.Handle();
            context.Handle();
            context.Handle();
            context.Handle();

            Console.Read();
        }
        static void Main(string[] args)
        {
            Context context = new Context();

            context.SetState(new ConcreteStateA(context));

            context.Handle(5);
            context.Handle(20);
            context.Handle(30);
            context.Handle(4);
            context.Handle(6);
        }
Esempio n. 3
0
        static void Main(string[] args)
        {
            Context context = new Context();               //先初始化一个拥有者Context的对象

            context.SetState(new ConcreteStateA(context)); //通过调用SetState()的方法

            context.Handle(5);                             //默认是状态A,所以输出 状态A,而且5>10,下一级还是输出 状态A
            context.Handle(20);                            //输出 状态A,但是20>10,下一级输出 状态B
            context.Handle(30);                            //输出 状态B,而且30>10,下一级输出 状态B
            context.Handle(4);                             //输出 状态B,但是4<10,下一级输出 状态A
            context.Handle(1);                             //输出 状态A,而且1<10,下一级输出 状态A

            Console.ReadKey();
        }