责任链模式:Chain of Responsibility Pattern、行为型模式


    责任链模式是将链中每一个节点看作一个对象,每个节点处理的请求均不同,且内部自动维护下一个节点对象。当一个请求从链式的首端发出时,沿着链的路径依次请求,直到处理完整个请求对象为止。
    责任链模式核心在于 解耦请求与处理


责任链模式应用场景


1、可动态指定一组对象处理请求。

2、多个对象处理同一请求,但具体由哪个对象处理则运行时动态处理


责任链模式的优缺点


优点: ​

​1、将请求与处理解耦 ​

​2、请求处理者只需关心自己感兴趣的请求进行处理,对于不感兴趣的请求,直接转发给下一个节点对象。 ​

​3、链路结构灵活,可以通过改变链路结构动态地新增或删减责任 ​

​4、容易扩展新的请求处理类,符合开闭原则。 ​

缺点:

​1、责任链太长或者请求时间过长会影响些许性能 2、如果存在循环引用,可能造成系统崩溃​


责任链模式源码应用


1、JDK中的Filter接口 Spring实现 MockFilterChain
2、Netty串行化处理Pipeline,责任处理器接口ChannelHandler
3、大部分的权限框架也广为使用责任链模式:Spring Security、Apache Shiro