📖 介绍
责任链模式是一种行为型模式。是一种处理请求的模式,请求在链上传递,每个处理器都有机会处理请求。处理器可以决定请求是否向下传递(如无法处理,需要交给下一个处理),或者直接返回(如处理完成,返回结果)。
通过责任链模式,可以让请求的发送者和处理请求的处理器进行结构,每个处理器只处理特定的情况,可以方便地添加/删除处理器。
常见的场景:
🔖 疫情期间请假出校,学校领导的层层审批 😂
🔖 击鼓传花游戏
🔖 缓存架构,在缓存中没有找到数据,往数据库总查找
🔖 GUI 程序对点击按钮的处理
🎈 实现方式
关键:每个处理器都实现统一的接口,内部包含下一个 ⏭️ 处理器 next 和本处理器的 🔨处理方式 execute。
🎗️ 声明一个处理器的通用接口。
🎗️ 具体的处理者。决定是否处理请求 / 请求是否传递给下一个。
🎗️ 责任链。
- 实现方式一:🔗 包含一个 List,可以用来构建处理请求的数据。process 方法对 List 进行循环,处理器可以执行就处理相应的方法,不能执行返回 null 之类。
- 实现方式二:在处理器中包含 next,为下一个处理器,不能执行调用 next 的方法。
处理者可以决定是否沿着链传递请求,可以
- (1)处理不了传递给下一个处理器,成功后直接返回,一个请求只能一个处理器执行;
- (2)所有处理器都依次执行一次请求,完成相应的内容。
🛠️ 实现
|
|
|
|
|
|