设计模式之责任链模式(tomcat filters)


责任链模式是指由某件任务可以由很多处理者处理,这些处理者保存着下一个处理者的引用,行程一条链,每个处理者只能处理该任务或者将任务交由下一个处理者处理,直到该任务被某个处理者处理或者最终没有处理者为止,该任务由最开始并不知道是谁来处理这个任务,只是把任务抛给第一个处理者而已。

 

责任链模式类图:



 

个人觉得也可以不用把一个handler注入另一个handler,虽然与原始的责任链模式类图有点儿出入,单只要理解责任链模式思想,灵活运用就可以。

 

我是用如下的方式用的



 

Tomcat过滤器(filter)实现原理即是用的责任链模式,但也不是一个filter引用另一个filter,是一个FilterChain统一管理所有filters为一个链,以下为我画的tomcat filter原理类图,有一些实现细节没有全画出来,比如ApplicationFilterChain类其实维护的是一个ApplicationFilterConfig(对filter的包装,加入了filterName、mapping关系等属性)类的数组,并不直接是Filter类的数组,但为了能更直观简单的体现原理,就没有把太细节的东西画出来

 

 

  • 大小: 22.5 KB
  • 大小: 23.4 KB
  • 大小: 47.2 KB
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值