从过滤器初识责任链设计模式

下面用的过滤器都是注解方式

可以使用非注解方式,就是去web.xml配置映射关系

上面程序的执行输出是

复制代码

再加一个过滤器

下面来看一段程序

输出结果

和过滤器是否非常相识

但是上面这段程序存在的问题:在编译阶段已经完全确定了调用关系,如果你想改变他们的调用顺序或者继续添加一个方法(好比过滤器),就必须修改java源代码.

而java修改源代码需要重新编译,项目需要重新测试,重新发布.增添了繁琐麻烦且容易出错的过程

违背了:开闭原则--->对扩展开发,对修改关闭

简单说就是对项目扩展我没有意见,但是你扩展的过程中修改了原来的代码.这就不对了.

要达到的效果是,可以扩展,但是别改代码

而过滤器的先后顺序,是可以随时改变的,在servlet中可以通过web.xml的过滤器隐射顺序,或者

在SpringBoot中@Order注解等(注解其实还是要改代码,不推荐)方式,动态改变执行顺序

既:编译阶段并没有确定调用顺序,而是运行阶段动态组合而成的.

这种****那么这种设计模式被称为责任链设计模式

责任链设计模式最大核心思想:在程序运行阶段,动态的组合程序的调用顺序.

相关推荐
郝学胜-神的一滴6 小时前
在Vibe Coding时代,学习设计模式与软件架构
人工智能·学习·设计模式·架构·软件工程
九狼6 小时前
Flutter SSE 流式响用 Dio 实现 OpenAI 兼容接口的逐 Token 输出
http·设计模式·api
郝学胜-神的一滴7 小时前
单例模式:从经典实现到Vibe Coding时代的思考
开发语言·c++·程序人生·单例模式·设计模式·多线程
J_liaty20 小时前
Java设计模式全解析:23种模式的理论与实践指南
java·设计模式
资深web全栈开发1 天前
设计模式之观察者模式 (Observer Pattern)
观察者模式·设计模式
逆境不可逃1 天前
【从零入门23种设计模式03】创建型之建造者模式(简易版与导演版)
java·后端·学习·设计模式·职场和发展·建造者模式
趣魂1 天前
心跳信令通常不采用NACK机制
设计模式·软件工程·软件构建
逆境不可逃1 天前
【从零入门23种设计模式01】创建型之工厂模式(简单工厂+工厂方法+抽象工厂)
java·spring·设计模式·简单工厂模式·工厂方法模式·抽象工厂模式·工厂模式
测试工坊1 天前
内存泄漏自动检测(下):对症下药,5 种泄漏 5 种抓法
设计模式
逆境不可逃1 天前
【从零入门23种设计模式02】创建型之单例模式(5种实现形式)
java·spring boot·后端·单例模式·设计模式·职场和发展