一、说明
旨在将请求沿着处理者链进行发送。收到请求后,每个处理者均可对请求进行处理,或将其传递给链上的下个处理者。
(一) 解决问题
将请求的发送者和接受者解耦,并使请求随着处理对象链传递,优化系统内部处理逻辑
(二) 使用场景
- 当程序需要使用不同方式处理不同种类请求, 而且请求类型和顺序预先未知时
- 当必须按顺序执行多个处理者时
- 当一个对象需要在运行时动态地确定其处理对象时
二、结构
- 处理者(Handler)声明了所有具体处理者的通用接口。该接口通常仅包含单个方法用于请求处理,但有时其还会包含一个设置链上下个处理者的方法。
- 基础处理者(BaseHandler)是一个可选的类,你可以将所有处理者共用的样本代码放置在其中。通常情况下,该类中定义了一个保存对于下个处理者引用的成员变量。客户端可通过将处理者传递给上个处理者的构造函数或设定方法来创建