本文實例講述了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#程序設計有所幫助。
| 
 
 | 
新聞熱點
疑難解答