定义
将接收者对象连接成一条链,并在该链上传递请求,直到有一个接收者对象处理它。通过让更多对象有机会处理请求,避免了请求发送者和接收者之间的耦合。
作用
请求 ===> 第一个处理者 ===> 第二个处理者 … ===> 第n个处理者
比如:公司的层次结构,CEO、经理、运营员 的权限不同,遇到问题需要从下至上一层层传递。
实现
- Handler(抽象处理者):定义一个处理请求的接口
- ConcreteHandler(具体处理者):处理请求的具体类,或者传给下家
缺点
性能问题
应用
tomcat 的容器设置就是责任链模式(pipeline/filter),从 Engine 到 Host 再到 Context 一直到 Wrapper 都是通过一个链传递请求
实现源代码:https://github.com/yangengzhe/coding-guide_i3geek/tree/master/docs/%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F