设计模式之责任链模式---小白篇
设计模式之责任链模式—小白篇
1、什么是责任链模式?
责任链模式其实就是将多个处理器串成一个链,每个处理器都有机会去处理,而请求端不需要知道具体发送到哪个处理器!
2、责任链模式的优缺点有哪些?
优点
-
请求端与处理端解耦,请求端无需知道具体是哪个处理器处理 提高代码的灵活性,可以灵活的添加或者更正处理器
缺点
-
如果无效链子很长,会影响性能
3、责任链模式的应用场景有哪些?
主要应用于一些链式场景,比如说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,一个喜欢把简单问题复杂化,把复杂问题简单化的程序猿! ❤