1 导读

1.1 定义

它包含了一些命令对象和一系列处理对象。
每个处理对象决定它能处理哪些命令对象,它也知道如何将它不能处理的命令对象传递给该链中的下一个处理对象。

该模式还描述了往该处理链的末尾添加新的处理对象的方法。

  • 精简定义
    为请求创建一个接收此次请求对象的链。

1.2 类型

行为型

2 适用场景

一个请求的处理需要多个对象当中的一或几个协作处理

3 优点

请求的发送者和接收者(请求的处理)解耦,责任链可以动态组合。

4 缺点
  • 责任链太长或者处理时间过长,影响性能
  • 责任链有可能过多
5 相关设计模式

V.S 状态模式

  • 各个对象并不指定下一个所要处理的对象者是谁,只有在客户端类设置链顺序及元素,直到被某个责任链处理或整条链结束
  • 每个状态知道自己下一个所要处理的对象者是谁,即编译时确定
6 实战

大厂技术布道师!就这么使用责任链模式,绝对没错!_原力计划

大厂技术布道师!就这么使用责任链模式,绝对没错!_原力计划_02
大厂技术布道师!就这么使用责任链模式,绝对没错!_原力计划_03
大厂技术布道师!就这么使用责任链模式,绝对没错!_原力计划_04

  • UML
    大厂技术布道师!就这么使用责任链模式,绝对没错!_原力计划_05

  • 测试类
    大厂技术布道师!就这么使用责任链模式,绝对没错!_原力计划_06
    大厂技术布道师!就这么使用责任链模式,绝对没错!_原力计划_07

  • 将博客注释掉
    大厂技术布道师!就这么使用责任链模式,绝对没错!_原力计划_08
    大厂技术布道师!就这么使用责任链模式,绝对没错!_原力计划_09

框架应用

Tomcat#FilterChain

FilterChain 是一个由 Servlet 容器提供给开发人员的对象,它提供了一个对资源的过滤请求的调用链的视图。 过滤器使用 FilterChain 调用链中的下一个过滤器,或者如果调用过滤器是链中的最后一个过滤器,则调用链末尾的资源
大厂技术布道师!就这么使用责任链模式,绝对没错!_原力计划_10
大厂技术布道师!就这么使用责任链模式,绝对没错!_原力计划_11