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(); }
//客户端代码, 向链上的具体处理者兑现提交请求 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)); }
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(); }