责任链模式

定义:将请求的发送和接收解耦,让多个接收对象都有机会处理这个请求。将这些接收对象串成一条链,并沿着这条链传递这个请求,直到链上的某个接收对象能够处理它为止。

适用场景

1、请求信息有敏感内容需要过滤

2、一个'请求'的处理 , 需要多个对象中的一个或若干个对象协作进行处理

3、多条件流程判断-权限控制,流程审批

优点

1、解耦:请求的发送者和接收者解耦,接收者是请求的处理者;

2、灵活性:可以动态地添加或修改处理链,增加新的处理者或者调整处理顺序,而无需修改已有代码;

3、可扩展性:由于责任链可以灵活地组合和拆分,可以很容易地添加新的处理者;

缺点

1、性能:如果责任链太长,或责任链中请求的处理时间过长,可能会影响性能

2、调试:不是很方便,特别是链条比较长,责任链可能过多,调试的时候

生活场景中的应用:

1、流程审批:如请假

2、安检放行

源码应用:

1)Spring框架中责任链模式的应用有很多,包括web请求设计,security安全权限设计,aop切面设计等等

2)mybatis的InterceptorChain保存了所有拦截器

相关推荐
fdc201716 天前
解耦的艺术:用责任链模式构建可插拔的文件处理流水线
c#·.net·责任链模式
YigAin1 个月前
Unity23种设计模式之 责任链模式
设计模式·责任链模式
柏木乃一1 个月前
进程间通信IPC(3)system V标准下基于责任链模式的消息队列,基于建造者模式的信号量
linux·c++·消息队列·建造者模式·责任链模式·信号量·进程间通信ipc
书院门前细致的苹果1 个月前
设计模式大全:单例、工厂模式、策略模式、责任链模式
设计模式·责任链模式·策略模式
苏渡苇1 个月前
优雅应对异常,从“try-catch堆砌”到“设计驱动”
java·后端·设计模式·学习方法·责任链模式
短剑重铸之日1 个月前
《设计模式》第十篇:三大类型之行为型模式
java·后端·设计模式·责任链模式·访问者模式·行为型模式
刀法孜然1 个月前
Chain of Responsibility 职责链模式
责任链模式
小码过河.1 个月前
设计模式——责任链模式
设计模式·责任链模式
Engineer邓祥浩1 个月前
设计模式学习(25) 23-23 责任链模式
学习·设计模式·责任链模式
虫小宝2 个月前
基于责任链模式构建可扩展的微信群发消息风控过滤器(Java实现)
android·java·责任链模式