责任链模式
简介
责任链模式(Chain of Responsibility Pattern)允许开发者将请求沿着链进行发送,直到其中一个处理者对象对其进行处理。
责任链模式的角色说明:
- 处理者(Handler):声明所有具体处理类的通用接口。该接口通常仅包含一个方法,用于处理请求,但有时还会包含一个用于设置下一个具体处理者对象的方法。
- 基础处理者(Base Handler):可选类,可将所有处理者对象共用的样本代码放置在其中
- 具体处理者(ConcreteHandler)
- 客户端(Client)
使用场景
- 责任链模式适用于有多个候选选项处理相同请求的情形,适用于不希望客户端选择接受者(因为多个对象都可以处理请求)的情形,还适用于需要将客户端与接受者解耦的情形,客户端只需链中的首个元素。
- 核心使用场景是当需要多个对象按顺序处理请求,且处理流程可能动态变化时。
- 多级审批/处理流程,例如医院就诊流程,挂号->诊室->药房->