按时间顺序把大动作拆成小动作
<!-- more -->
## 关键词
我来整理一下责任链模式(Chain of Responsibility)相关的关键词和概念:
| 分类 | 关键词 | 说明 |
| ---- | ----------------- | -------------- |
| 核心角色 | Handler | 处理器,定义处理请求的接口 |
| | ConcreteHandler | 具体处理器,实际处理请求的类 |
| | Request | 请求,需要被处理的信息或任务 |
| | Client | 客户端,发起请求的对象 |
| | Chain | 责任链,处理器的有序集合 |
| 处理方法 | HandleRequest | 处理请求的方法 |
| | SetNext | 设置下一个处理器 |
| | GetNext | 获取下一个处理器 |
| | Process | 处理请求的具体逻辑 |
| | CanHandle | 判断是否能处理请求 |
| 链式操作 | Forward | 转发请求到下一处理器 |
| | Intercept | 拦截请求 |
| | Filter | 过滤请求 |
| | Break | 中断责任链 |
| | Continue | 继续传递请求 |
| 实现方式 | Pipeline | 管道模式实现 |
| | Middleware | 中间件方式实现 |
| | Filter Chain | 过滤器链实现 |
| | Interceptor Chain | 拦截器链实现 |
| 处理类型 | Synchronous | 同步处理 |
| | Asynchronous | 异步处理 |
| | Recursive | 递归处理 |
| | Iterative | 迭代处理 |
## 需求
整个报价过程,要经历很多环节,都写在一起,岂不是要爆炸了!

## 实现

整个计算模块是一个 chain,由若干个 component 组成,传递 context 是为了共同关心的信息串联起来。
另外,整个后端项目中的鉴权、access 日志、参数校验、限流等也都是责任链上的一个 processor,HttpServletRequest 和 Response 就是 chain 中的 context。
web filter 作用于容器,应用范围影响最大;spring interceptor 作用于框架,范围影响适中;aop 作用于业务逻辑,精细化处理,范围影响最小。如果观察 spring 项目的方法栈的变化,开头结尾都是有共性的。
