引入动机:职责链可以是一条直线、一个环或者一个树形结构,最常见的职责链是直线型,即沿着一条单向的链来传递请求。
链上的每一个对象都是请求处理者,职责链模式可以将请求的处理者组织成一条链,并使请求沿着链传递,由链上的处理者对请求进行相应的处理,客户端无须关心请求的处理细节以及请求的传递,只需将请求发送到链上即可,将请求的发送者和请求的处理者解耦。这就是职责链模式的模式动机。
职责链模式(Chain of Responsibility Pattern):避免请求发送者与接收者耦合在一起,让多个对象都有可能接收请求,将这些对象连接成一条链,并且沿着这条链传递请求,直到有对象处理它为止。由于英文翻译的不同,职责链模式又称为责任链模式,它是一种对象行为型模式。
职责链模式包含如下角色:
Handler: 抽象处理者
public abstract class Handler
{
protected Handler successor;
public void setSuccessor(Handler successor)
{
this.successor=successor;
}
public abstract void handleRequest(String request);
}
ConcreteHandler: 具体处理者
public class ConcreteHandler extends Handler
{
public void handleRequest(String request)
{
if(请求request满足条件)
{
...... //处理请求;
}
else
{
this.successor.handleRequest(request); //转发请求
}
}
}
Client: 客户类
可以参考这个例子
参考链接:
职责链模式
本文介绍了职责链模式的概念及其应用场景,详细解析了职责链模式中各角色的职责与实现方式,帮助读者理解如何通过职责链模式解耦请求发送者与接收者。
1099

被折叠的 条评论
为什么被折叠?



