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


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

    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);
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    领导处理器

    public class LeaderHandler extends Handler{
    
        @Override
        public void process(int num) {
            if (num <= 3) {
                System.out.println("Leader 审批!");
            }else {
                nextHandler.process(num);
            }
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    Boss处理器

    public class BossHandler extends Handler{
    
        @Override
        public void process(int num) {
            System.out.println("Boss 处理!");
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    串成链测试

    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);
    
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    感谢大家的阅读,我是Alson_Code,一个喜欢把简单问题复杂化,把复杂问题简单化的程序猿!

  • 相关阅读:
    软件工程师:机器学习也需要学习?
    按键控制LED灯亮灭
    [附源码]SSM计算机毕业设计网上书店管理系统JAVA
    DemographicTable 新的基线特征表绘制 R包
    docker-Dockerfile
    Surface area
    Excel之数据透视&NotePad之列编辑
    剑指offer——JZ24 反转链表 解题思路与具体代码
    flink集群与资源@k8s源码分析-回顾
    品牌关键词搜索口碑如何优化?
  • 原文地址:https://blog.csdn.net/weixin_42415173/article/details/126713272