当前位置: 移动技术网 > IT编程>开发语言>c# > C#职责链模式实例详解

C#职责链模式实例详解

2019年07月18日  | 移动技术网IT编程  | 我要评论
本文实例讲述了c#职责链模式。分享给大家供大家参考。具体如下: concretehandler1.cs如下: using system; us

本文实例讲述了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#程序设计有所帮助。

如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!

相关文章:

验证码:
移动技术网