C# 设计模式-职责链(Chain of Responsibility)
2018-01-03 18:47
561 查看
使多个对象都有机会处理请求,将这些对象连成一条链,并沿着该链传递请求,知道有对象处理它为止。
主要组成:
Handler-处理者父类
ConcreteHandler-具体处理者
相关类:
调用:
结果:
![](https://img-blog.csdn.net/20180103184634712?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbTBfMzc4NjI0MDU=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
参考资料:《设计模式-可复用面对对象软件的基础》
主要组成:
Handler-处理者父类
ConcreteHandler-具体处理者
相关类:
using System; namespace ChainofResponsibility { /// <summary> /// 处理者父类 /// </summary> abstract class HandlerClass { public HandlerClass Successor { get; set; } public abstract void HandlerRequest(int number); } /// <summary> /// A处理者 /// </summary> class ConcreteHandlerA : HandlerClass { public override void HandlerRequest(int number) { if (number < 10) { Console.WriteLine("A处理了数字{0}", number); } else if (Successor != null) { Successor.HandlerRequest(number); } } } /// <summary> /// B处理者 /// </summary> class ConcreteHandlerB : HandlerClass { public override void HandlerRequest(int number) { if (number >= 10) { Console.WriteLine("B处理了数字{0}", number); } else if (Successor != null) { Successor.HandlerRequest(number); } } } }
调用:
using System; namespace ChainofResponsibility { class Program { static void Main(string[] args) { ConcreteHandlerA handlerA = new ConcreteHandlerA(); ConcreteHandlerB handlerB = new ConcreteHandlerB(); //设置A处理者的后继者为B handlerA.Successor = handlerB; handlerA.HandlerRequest(15); handlerA.HandlerRequest(1); Console.Read(); } } }
结果:
参考资料:《设计模式-可复用面对对象软件的基础》
相关文章推荐
- C#设计模式系列:职责链模式(Chain of Responsibility)
- [导入]C#面向对象设计模式纵横谈(20):(行为型模式) Chain Of Responsibility 职责链模式.zip(8.18 MB)
- [导入]C#面向对象设计模式纵横谈(14):Chain of Responsibility 职责链模式(行为型模式).zip(9.54 MB)
- 设计模式之Chain of Responsibility(职责链)
- 设计模式 ( 十二 ) 职责链模式(Chain of Responsibility)(对象行为
- 设计模式的征途—14.职责链(Chain of Responsibility)模式
- 设计模式之Chain of Responsibility(职责链)
- 设计模式之职责链模式(Chain Of Responsibility)
- 设计模式学习笔记--Chain Of Responsibility 职责链模式
- C# 职责链模式(Chain of Responsibility)
- 设计模式与泡mm的关系之Chain of Responsibility职责链模式及再思考
- 设计模式之Chain of Responsibility(职责链)
- 设计模式之(十四)--职责链模式(Chain Of Responsibility)
- 重温设计模式(三)——职责链模式(chain of responsibility)
- 设计模式之Chain ofResponsibility -职责链
- C#设计模式——职责链模式(Chain Of Responsibility Pattern)
- 设计模式之(十五)职责链Chain of Responsibility
- Java设计模式-----Chain of Responsibility职责链模式
- 设计模式总结之Chain Of Responsibility Parttert(职责链模式)
- C#设计模式之二十职责链模式(Chain of Responsibility Pattern)【行为型】