手机
当前位置:查字典教程网 >编程开发 >C#教程 >C#职责链模式实例详解
C#职责链模式实例详解
摘要:本文实例讲述了C#职责链模式。分享给大家供大家参考。具体如下:ConcreteHandler1.cs如下:usingSyst...

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

【C#职责链模式实例详解】相关文章:

C#求解哈夫曼树,实例代码

深入委托与多播委托的详解

C#启动和停止windows服务的实例代码

C# 汉字转化拼音的简单实例代码

C#生成影像金字塔的原理实例

深入C#中get与set的详解

C# 静态变量与静态方法实例研究

C# 手动/自动保存图片的实例代码

使用异步方式调用同步方法(实例详解)

深入c#工厂模式的详解

精品推荐
分类导航