什么是责任链?
责任链简单来说就是一种设计模式,它允许将请求沿着一个处理链传递,直到链中的某个对象处理它。这样,发送者无需知道哪个对象将处理请求,所有的处理对象都可以尝试处理请求或将请求传递给链上的下一个对象。
举生活中的例子,当我们需要请假时,我们把请假条交给项目经理,假如是一个短时间的请假,项目经理就可以处理我们的请求,如果是长时间请假,那么会将我们的请求进一步传递给副经理,副经理如果觉得自己也处理不了,就再次传递给总经理。
例如:
java
public class Main {
public static void main(String[] args) {
Handler leader = new Leader();
Handler boss = new Boss();
leader.setNextHandler(boss);
leader.process(7);
}
}
abstract class Handler{
public Handler nextHandler;
public void setNextHandler(Handler nextHandler) {
this.nextHandler = nextHandler;
}
public abstract void process(Integer info);
}
class Leader extends Handler{
@Override
public void process(Integer info) {
if (info>0 && info<5)
System.out.println("leader 处理....");
else
nextHandler.process(info);
}
}
class Boss extends Handler{
@Override
public void process(Integer info) {
System.out.println("Boss 处理...");
}
}

将处理请求数字7交给leader处理,但是它处理不了,继续交给Boss处理