Exemplo n.º 1
0
        public void ProcessRequest()
        {
            var handler1 = new ConcreteHander1();
            var handler2 = new ConcreteHandler2();

            handler2.SetSetSuccessor(handler1);

            handler1.ProcessRequest(20);
        }
Exemplo n.º 2
0
        /// <summary>
        /// 责任链模式.
        /// </summary>
        private static void ChainCommand()
        {
            AbstractHandler handler  = new ConcreteHander1();
            AbstractHandler handler2 = new ConcreteHander2();
            AbstractHandler handler3 = new ConcreteHander3();

            //链式调用 handler1保存handler2的引用,handler2保存handler3的引用,这样就能逐级调用
            handler.SetHandler(handler2);
            handler2.SetHandler(handler3);

            //执行
            handler.Request(2);
            Console.Read();
        }