责任链模式其实就是将多个处理器串成一个链,每个处理器都有机会去处理,而请求端不需要知道具体发送到哪个处理器!
优点
缺点
主要应用于一些链式场景,比如说Spring 拦截器的前置方法,后置方法,再比如Spring Aop 的 前置通知、环绕通知、后置通知等等,或者请假审批流程,小于3天的经理批准,大于3天的老板批准!
请假审批案例
处理器抽象类
public abstract class Handler {
protected Handler nextHandler;
public void setNextHandler(Handler nextHandler) {
this.nextHandler = nextHandler;
}
public abstract void process(int num);
}
领导处理器
public class LeaderHandler extends Handler{
@Override
public void process(int num) {
if (num <= 3) {
System.out.println("Leader 审批!");
}else {
nextHandler.process(num);
}
}
}
Boss处理器
public class BossHandler extends Handler{
@Override
public void process(int num) {
System.out.println("Boss 处理!");
}
}
串成链测试
public class Demo {
public static void main(String[] args) {
LeaderHandler leaderHandler = new LeaderHandler();
BossHandler bossHandler = new BossHandler();
leaderHandler.setNextHandler(bossHandler);
leaderHandler.process(2);
leaderHandler.process(5);
}
}
感谢大家的阅读,我是Alson_Code,一个喜欢把简单问题复杂化,把复杂问题简单化的程序猿! ❤