责任链模式(Chain of Responsibility Pattern)
为了解决什么问题?
责任链模式的目的是为了将请求的发送者和接收者解耦。它允许多个处理器都有机会处理请求,将这些处理器连接成一条链,并沿着这条链传递请求,直到有一个处理器处理它为止。
通过这种方式,发送者不需要知道谁是请求的接收者,同时可以动态地改变链中的成员。
怎么用代码实现?
下面是Java代码示例,先定义抽象处理器,以及具体的处理器实现:
/**
* 抽象处理器
*/
abstract class Handler {
protected Handler successor;
public void setSuccessor(Handler successor) {
this.successor = successor;
}
public abstract void handleRequest(String request);
}
/**
* 处理器A
*/
class ConcreteHandlerA extends Handler {
@Override
public void handleRequ