C#職責鏈形式實例詳解。本站提示廣大學習愛好者:(C#職責鏈形式實例詳解)文章只能為提供參考,不一定能成為您想要的結果。以下是C#職責鏈形式實例詳解正文
本文實例講述了C#職責鏈形式。分享給年夜家供年夜家參考。詳細以下:
ConcreteHandler1.cs以下:
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ConsoleApplication1 { public class ConcreteHandler1:Handler { public override void HandRequest(int request) { if(request>0&&request<10) { Console.WriteLine("{0} 處置要求 {1}",this.GetType().Name,request); } else if(successor!=null) { successor.HandRequest(request); } } } }
ConcreteHandler2.cs以下:
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ConsoleApplication1 { public class ConcreteHandler2:Handler { public override void HandRequest(int request) { if (request > 10 && request < 20) { Console.WriteLine("{0} 處置要求 {1}", this.GetType().Name, request); } else if (successor != null) { successor.HandRequest(request); } } } }
ConcreteHandler3.cs以下:
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ConsoleApplication1 { public class ConcreteHandler3:Handler { public override void HandRequest(int request) { if (request > 20 && request < 30) { Console.WriteLine("{0} 處置要求 {1}", this.GetType().Name, request); } else if (successor != null) { successor.HandRequest(request); } } } }
Handler.cs以下:
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ConsoleApplication1 { public abstract class Handler { protected Handler successor; public void SetSuccessor(Handler successor) { this.successor = successor; } public abstract void HandRequest(int request); } }
Program.cs以下:
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ConsoleApplication1 { class Program { 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,14,22,18,3,27,20}; foreach(int request in requests) { h1.HandRequest(request); } Console.ReadKey(); } } }
願望本文所述對年夜家的C#法式設計有所贊助。