Java常见技术分享-11-责任链模式

什么是责任链模式?

责任链模式的应用场景 是 当一个请求需要经过 多个对象依次处理 或者 不确定 哪个对象 能处理该请求的时候。 他主要有两个核心的组件。

一个是抽象的处理者, 它定义了处理请求的接口, 并且持有下一个处理者的引用。 一个是具体的处理者, 他实现了处理请求的接口, 可以自己判断要不要把请求继续给下一个处理者处理。

责任链模式在SpringBoot中有什么实际的应用吗?

SpringBoot里的HandlerInterceptor接口 就相当于抽象处理者,

他定义了处理请求的 preHandle和postHandle 方法。 分别是请求真正到达controller之前, 和之后执行的。

而具体的处理者, 则是像我们自己写的登录拦截器和日志拦截器等。

比如登录拦截器, 如果识别到客户还没登录, 就直接return false,就不给下一个拦截器处理了。

这种处理模式, 特别适合 一堆校验规则, 如果转换成 责任链模式 那么就会很简洁。 每一个单独的校验都是独立的"责任",把责任传递下去。

相关推荐
冰暮流星8 小时前
sql之is null 运算符
java·数据库·sql
Rain的Java大神之路8 小时前
🔥13年Java老兵转型AI Agent:90%的人挂在同一个坑,根本不用学Python!(万字实战复盘,建议收藏)
java·后端·面试
yuniko-n8 小时前
【Java】关于容器选型:Deque、PriorityQueue、LinkedList
java·开发语言
yuniko-n8 小时前
【JUC】wait 和 sleep
java·开发语言
知守观8 小时前
18年老兵的十条开发军规:每条背后都是一个翻车现场
java·后端·程序员
BBmmo9 小时前
我的 Java 学习笔记 · 第 11 篇:Condition.await 为什么必须放在 while 里
java
SimonKing9 小时前
一只离线鼠鼠,干翻了一堆在线格式转换网站
java·后端·程序员
程序员-Benothing9 小时前
Linux文本排序统计命令:sort、uniq、wc、cut、tr实战
java·开发语言·算法
clz13145219 小时前
双重检查锁 DCL 终极优化:懒加载 + 线程安全 + 高性能
java
CRMEB9 小时前
前后端技术栈全面换代!CRMEB 多商户(Java)v3.0更新预告
java·开发语言