描述
顾名思义,责任链模式(Chain of Responsibility Pattern)为请求创建了一个接收者对象的链。这种模式给予请求的类型,对请求的发送者和接收者进行解耦。这种类型的设计模式属于行为型模式。
在这种模式中,通常每个接收者都包含对另一个接收者的引用。如果一个对象不能处理该请求,那么它会把相同的请求传给下一个接收者,依此类推。
类图
代码演示
public abstract class Handler {
private Handler next;
public Handler getNext() {
return next;
}
public void setNext(Handler next) {
this.next = next;
}
//处理请求
public abstract void handle(String request);
}
public class OneHandler extends Handler {
@Override
public void handle(String request) {
System.out.println("one");
}
}
public class TwoHandler extends Handler {
@Override
public void handle(String request) {
System.out.println("tow");
}
}
public static void main(String[] args) {
OneHandler oneHandler = new OneHandler();
TwoHandler twoHandler = new TwoHandler();
oneHandler.setNext(twoHandler);
oneHandler.handle("haha");
}
其他参考
开源框架中的责任链模式实践
https://mp.weixin.qq.com/s/IvPEvf1Jn3Xejh8TbH0Inw