Beispiel #1
0
        static void Main(string[] args)
        {
            Handler handler1 = new ConcreteHandler1();
            Handler handler2 = new ConcreteHandler2();

            handler1.SetNext(handler2);

            handler1.handleRequest("One");
            Console.WriteLine("---------------------------------------");
            handler1.handleRequest("Two");
            Console.WriteLine("---------------------------------------");
            handler1.handleRequest("Three");

            Console.Read();
        }
Beispiel #2
0
        //客户端代码, 向链上的具体处理者兑现提交请求
        static void Main(string[] args)
        {
            Handler h1 = new ConcreteHandler1();
            Handler h2 = new ConcreteHandler2();
            Handler h3 = new ConcreteHandler3();

            //设置职责链的上家与下家
            h1.SetSuccessor(h2);
            h2.SetSuccessor(h3);

            int[] requests = { 2, 5, 12, 22, 15, 4, 27, 20 };

            //循环给最小处理者提交请求, 不同的数额, 由不同权限处理者处理
            requests.ToList().ForEach(e => h1.HandleRequest(e));
        }
Beispiel #3
0
        static void Main(string[] args)
        {
            Handler h1 = new ConcreteHandler1();
            Handler h2 = new ConcreteHandler2();

            h1.SetSuccessor(h2);

            int[] requests = { 2, 5, 14, 18, 3 };

            foreach (var item in requests)
            {
                h1.HandleRequest(item);
            }

            CommonManager  jinli     = new CommonManager("经理");
            Majordomo      zongjian  = new Majordomo("总监");
            GeneralManager zongjinli = new GeneralManager("总经理");

            jinli.SetSuperior(zongjian);
            zongjian.SetSuperior(zongjinli);

            Request request = new Request {
                RequestType = "请假", Number = 1, RequestContent = "沈伟请假"
            };

            jinli.RequestApplication(request);
            Request request2 = new Request {
                RequestType = "请假", Number = 4, RequestContent = "沈伟请假"
            };

            jinli.RequestApplication(request2);
            Request request3 = new Request {
                RequestType = "加薪", Number = 500, RequestContent = "沈伟请求加薪"
            };

            jinli.RequestApplication(request3);
            Request request4 = new Request {
                RequestType = "加薪", Number = 1000, RequestContent = "沈伟请求加薪"
            };

            jinli.RequestApplication(request4);


            Console.Read();
        }