大厂技术布道师!就这么使用责任链模式,绝对没错!

简介: 大厂技术布道师!就这么使用责任链模式,绝对没错!

1 导读

1.1 定义

它包含了一些命令对象和一系列处理对象。

每个处理对象决定它能处理哪些命令对象,它也知道如何将它不能处理的命令对象传递给该链中的下一个处理对象。

该模式还描述了往该处理链的末尾添加新的处理对象的方法。

  • 精简定义

为请求创建一个接收此次请求对象的链。

1.2 类型

行为型

2 适用场景

一个请求的处理需要多个对象当中的一或几个协作处理

3 优点

请求的发送者和接收者(请求的处理)解耦,责任链可以动态组合。

4 缺点

  • 责任链太长或者处理时间过长,影响性能
  • 责任链有可能过多

5 相关设计模式

V.S 状态模式

  • 各个对象并不指定下一个所要处理的对象者是谁,只有在客户端类设置链顺序及元素,直到被某个责任链处理或整条链结束
  • 每个状态知道自己下一个所要处理的对象者是谁,即编译时确定

6 实战

image.png

image.png

image.png

image.png

  • UML

1.png

  • 测试类

image.png

image.png

  • 将博客注释掉

image.png

image.png

框架应用

Tomcat#FilterChain

FilterChain 是一个由 Servlet 容器提供给开发人员的对象,它提供了一个对资源的过滤请求的调用链的视图。 过滤器使用 FilterChain 调用链中的下一个过滤器,或者如果调用过滤器是链中的最后一个过滤器,则调用链末尾的资源

image.png

image.png

目录
相关文章
|
5月前
|
机器学习/深度学习 设计模式 开发框架
编程之舞:技术感悟与实践
在数字世界的舞台上,编程不仅是技术的展示,更是一种艺术的体现。本文将通过个人的技术旅程,探讨如何将编程从一项技能转变为一种创造性的实践。我们将一起探索代码背后的哲学,学习如何在解决复杂问题时保持创新和灵活性,并讨论持续学习的重要性以及它如何塑造我们的技术之路。
|
7月前
|
前端开发 开发者
编织代码的诗篇:我的技术感悟之旅
【6月更文挑战第10天】在数字世界的织布机上,每一行代码都如同细腻的丝线,交织成我技术生涯的华美篇章。本文将带你穿梭于我与代码共舞的日子,感受那些静默中涌现的灵感,以及在挑战与创造间不断进化的思维。
40 3
|
6月前
|
Java 数据库连接 开发者
从零到一:JAVA反射技术的“逆袭”之路
【7月更文挑战第1天】Java反射技术,从高级特性走向普及,核心是Class类,用于运行时检查和操作类信息。在Spring等框架中,反射实现DI和AOP,提升灵活性。动态代理通过Proxy和InvocationHandler实现方法拦截。反射现已成为Java不可或缺的工具,未来潜力无限。
26 0
|
设计模式 架构师 Java
牛皮了!世界级架构师,图解面向对象编程,小学生都能看得懂
面向对象编程(Object-oriented Programming,缩写:OOP)是软件工程中一种具有对象概念的编程范式(Programming Paradigm),同时也是一种程序开发的抽象方针,与之对应的编程范式还有:函数式编程(Functional Programming)、过程式编程(Procedural Programming)、响应式编程(Reactive Programming)等。
|
设计模式 分布式计算 Java
你敢信?清华毕业大佬用了一个坦克大战项目就讲完了23种设计模式
坦克大战 一、需求分析 坦克大战中有我方坦克和敌方坦克,我方坦克有一个,敌方坦克有多个。坦克可以移动,也可以发射子弹。我方坦克可以通过上下左右键来控制方向,敌方坦克自动改变方向。在游戏窗体中有障碍物,包括砖墙、钢墙、水墙和草地。坦克可以穿过草地,在遇到其他障碍物时,我方坦克停止移动,并通过操纵改变方向再移动,敌方坦克遇到其他障碍物时可以自动的改变方向。我方坦克有三次生命值,当与敌方坦克或敌方子弹相撞时,生命值减- -, 当生命值是零时,敌方胜利,游戏结束。敌方坦克的生命值为-一,当敌方坦克与我方坦克或者我方子弹相遇就消失,同时我方子弹也消失,并产生爆炸。当我方坦克把敌方坦克消灭完后,我方胜利
82 0
|
设计模式 算法 JavaScript
看了我写的设计模式,全公司同事都开始悄悄模仿了。。。 上
看了我写的设计模式,全公司同事都开始悄悄模仿了。。。 上
|
设计模式 消息中间件 JavaScript
看了我写的设计模式,全公司同事都开始悄悄模仿了。。。 下
看了我写的设计模式,全公司同事都开始悄悄模仿了。。。 下
|
设计模式 安全 关系型数据库
2w行代码、200个实战项目,助你修炼5大编程基本功
2w行代码、200个实战项目,助你修炼5大编程基本功
172 0
|
设计模式 消息中间件 算法
看了我写的设计模式,全公司同事都开始悄悄模仿了。。。
看了我写的设计模式,全公司同事都开始悄悄模仿了。。。
|
设计模式 算法 架构师
YYDS!由浅入深学习阿里JDK源码,已在阿里内部疯拿3个金奖
大家好,又是我你们不知道喜不喜爱的架构师之道,今天呢,我想和大家聊一聊JDK源码的问题: * **为什么要看JDK源码** * **JDK源码的阅读顺序** * **JDK源码的最佳学习方法**
154 0
YYDS!由浅入深学习阿里JDK源码,已在阿里内部疯拿3个金奖