责任链模式

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

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

适用场景

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

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

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

优点

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

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

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

缺点

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

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

生活场景中的应用:

1、流程审批如请假

2、安检放行

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

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

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6