程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> C#職責鏈形式實例詳解

C#職責鏈形式實例詳解

編輯:C#入門知識

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#法式設計有所贊助。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved