职责链,Chain of Responsibility
2014-07-05 00:27
288 查看
职责链的定义是:
通过提供多个对象处理一次请求来避免耦合请求的发送者和接收者。把这些对象链接起来,通过链条传递请求,直到有一个对象处理。
其UML类图的示例如下:
在这个模式中,参与者包括:
Handler:
定义一个接口用于处理请求。
(可选)实现后续的链接。
ConcreteHandler:
处理其负责的请求。
访问其后续。
如果ConcreteHandler可以处理请求,就处理,如果不能就把请求转发给后续。
Client:在链上把请求初始化给ConcreteHandler对象。
实现代码:
使用场景:
用一组handle处理一个请求。
需要传一个请求给一个Hanlder列表中的handler。
C#中的异常处理就是这个模式。
通过提供多个对象处理一次请求来避免耦合请求的发送者和接收者。把这些对象链接起来,通过链条传递请求,直到有一个对象处理。
其UML类图的示例如下:
在这个模式中,参与者包括:
Handler:
定义一个接口用于处理请求。
(可选)实现后续的链接。
ConcreteHandler:
处理其负责的请求。
访问其后续。
如果ConcreteHandler可以处理请求,就处理,如果不能就把请求转发给后续。
Client:在链上把请求初始化给ConcreteHandler对象。
实现代码:
public abstract class Handler { protected Handler _successor; public abstract void HandleRequest(int request); public void SetSuccessor(Handler successor) { _successor = successor; } } public class ConcreteHandlerA : Handler { public override void HandleRequest(int request) { if (request == 1) Console.WriteLine("Handled by ConcreteHandlerA"); else if (_successor != null) _successor.HandleRequest(request); } } public class ConcreteHandlerB : Handler { public override void HandleRequest(int request) { if (request > 10) Console.WriteLine("Handled by ConcreteHandlerB"); else if (_successor != null) _successor.HandleRequest(request); } }
使用场景:
用一组handle处理一个请求。
需要传一个请求给一个Hanlder列表中的handler。
C#中的异常处理就是这个模式。
相关文章推荐
- 职责链模式(Chain Of Responsibility Pattern)
- 设计模式13 - 职责链Chain-Of-Responsibility
- 设计模式笔记18:职责链模式(Chain of Responsibility Pattern)
- 设计模式(十五)之 Chain of Responsibility(职责链)
- JAVA设计模式十一--Chain of Responsibility(职责链模式)
- 步步为营 .NET 设计模式学习笔记 十九、Chain of Responsibility(职责链模式)
- 3.1 Chain of responsibility(职责链) -- 对象行为型模式
- 深入浅出设计模式——职责链模式(Chain of Responsibility Pattern)
- 设计模式——职责链你模式(Chain of Responsibility)
- 设计模式14:Chain of Responsibility Pattern (职责链模式)
- C#设计模式之二十职责链模式(Chain of Responsibility Pattern)【行为型】
- 设计模式(13)——职责链 Chain Of Responsibility
- 设计模式入门之职责链模式Chain Of Responsibility
- 设计模式(行为型)之职责链模式(Chain of Responsibility Pattern)
- 职责链模式(Chain of Responsibility Pattern)
- Java模式 - Chain of Responsibility(职责链模式)
- 职责链模式 chain of responsibility
- "围观"设计模式(22)--行为型之职责链模式(Chain Of Responsibility Pattern)
- 职责链模式 Chain of Responsibility Pattern
- 职责链模式(Chain of Responsibility Pattern)