设计模式之责任链模式---小白篇

设计模式之责任链模式—小白篇

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,一个喜欢把简单问题复杂化,把复杂问题简单化的程序猿! ❤
经验分享 程序员 微信小程序 职场和发展