1.定义
为了避免请求发送者与多个请求处理者耦合在一起,于是将所有请求的处理者通过前一对象记住其下一个对象的引用而连成一条链;当有请求发生时,可将请求沿着这条链传递,直到有对象处理它为止。
拦截的类都实现统一接口。
关键代码:Handler 里面聚合它自己,在 HandlerRequest 里判断是否合适,如果没达到条件则向下传递,向谁传递之前 set 进去。
2.结构与实现
通常情况下,可以通过数据链表来实现职责链模式的数据结构。
职责链模式主要包含以下角色。
责任链模式的独到之处是将其节点处理者组合成了链式结构,并允许节点自身决定是否进行请求处理或转发,相当于让请求流动起来。
结构图:
设计模式学习-职责链模式(Chain of Responsibility)
原文:https://www.cnblogs.com/heitx/p/14723456.html