责任链模式[❤❤❤]

最后更新于:2022-04-02 04:20:30

[TOC] ## 概述 亦称:职责链模式、命令链、CoR、Chain of Command、Chain of Responsibility **责任链模式**是一种行为设计模式,允许你将请求沿着处理者链进行发送。收到请求后,每个处理者均可对请求进行处理,或将其传递给链上的下个处理者。 ## 责任链模式结构 ![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/6e/d6/6ed6fc48d396dd822c0a4d1d879c027a_760x820.png) 1. 处理者 (Handler) 声明了所有具体处理者的通用接口。 该接口通常仅包含单个方法用于请求处理, 但有时其还会包含一个设置链上下个处理者的方法。 2. 基础处理者 (Base Handler) 是一个可选的类, 你可以将所有处理者共用的样本代码放置在其中。 3. 具体处理者 (Concrete Handlers) 包含处理请求的实际代码。 每个处理者接收到请求后, 都必须决定是否进行处理, 以及是否沿着链传递请求。 4. 客户端 (Client) 可根据程序逻辑一次性或者动态地生成链。 值得注意的是, 请求可发送给链上的任意一个处理者, 而非必须是第一个处理者。 ## 适合应用场景 1. 当程序需要使用不同方式处理不同种类请求, 而且请求类型和顺序预先未知时, 可以使用责任链模式。 2. 当必须按顺序执行多个处理者时, 可以使用该模式。 3. 如果所需处理者及其顺序必须在运行时进行改变, 可以使用责任链模式。
';