java程序设计开发,设计思想开源框架-行为型模式之责任链模式,将请求的发送者和接收者解耦,使多个对象都有机会处理这个请求。
责任链模式学习笔记
一、责任链模式概述
定义:
责任链模式(Chain of Responsibility Pattern)是一种行为型设计模式,它将处理请求的对象连成一条链。当请求发生时,请求沿着链传递,直到有某个对象处理它为止。这种模式解耦了请求的发送者和接收者,使多个对象都有机会处理请求,避免请求发送者与具体处理者之间的紧耦合。
核心思想:
通过将处理逻辑分散到多个处理者对象中,并形成一条链式结构,每个处理者决定自己是否处理请求,或者将请求传递给链中的下一个处理者。最终实现 “请求传递” 和 “责任分配” 的分离。
二、核心角色
-
抽象处理者(Handler)
- 定义处理请求的接口,包含一个指向后续处理者的引用(
successor
)和处理请求的抽象方法(handleRequest
)。 - 提供设置后续处理者的方法(
setSuccessor
),用于构建责任链。
- 定义处理请求的接口,包含一个指向后续处理者的引用(
-
具体处理者(Concrete Handler)
- 实现抽象处理者的处理方法,判断自己是否有权限处理请求:
- 若有权限,处理请求并结束流程;
- 若无权限,将请求传递给后续处理者(
successor.handleRequest
)。
- 实现抽象处理者的处理方法,判断自己是否有权限处理请求:
-
客户端(Client)
- 创建责任链,并向链的起点发送请求,无需知道具体是哪个处理者处