时间:2021-05-20
本文实例讲述了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#程序设计有所帮助。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
本文实例讲述了C#设计模式之ChainOfResponsibility职责链模式解决真假美猴王问题。分享给大家供大家参考,具体如下:一、理论定义职责链模式向一个
本文实例讲述了Python设计模式之职责链模式原理与用法。分享给大家供大家参考,具体如下:职责链模式(ChainOfResponsibility):使多个对象都
C#动态创建button按钮的方法实例详解C#编程中经常需要动态创建,本文主要介绍C#动态创建button按钮的方法,涉及C#按钮属性动态设置的相关技巧,以供借
本文实例讲述了php设计模式之职责链模式定义与用法。分享给大家供大家参考,具体如下:name=$name;$this->department=$departme
职责链模式简介及UML职责链也叫责任链,他是一种行为型模式,它为请求创建了一个接收请求者对象的链,并将请求沿着这条链传递到目标对象去处理。该模式最简单的实现方式