责任链模式是一种行为设计模式,允许你将请求沿着一条链传递,直到一个对象处理它为止。这种模式包含了一些处理对象,每个对象都包含逻辑来处理特定类型的命令或请求。如果一个对象不能处理该请求,它就会将请求传递给链中的下一个对象,如此类推。
定义
责任链模式通过定义一个对象链来分配请求的处理,每个对象在处理请求或将请求传递给链中的下一个对象方面都有自己的职责。这种模式背后的关键思想是解耦发送者和接收者。
应用场景
责任链模式适用于以下情况:
- 当一个请求可能有多个处理程序,但只有一个处理程序需要处理请求时。
- 当处理程序集应该动态指定时。
- 当需要在不明确指定确切处理程序的情况下,以透明的方式处理请求时。
示例与反例
示例:
下面是一个使用责任链模式的Java代码示例。我们将模拟一个简单的请假审批流程,其中包含几个层级的审批者:直接主管(Manager
)、部门主管(Director
)和人力资源(HR
)。每个审批者都可以处理一定范围内的请假天数。
首先,我们定义一个抽象的处理者类 Approver
,它将作为责任链中的节点:
abstract class Approver {
protected Approver successor;
public void setSuccessor(Approver successor) {
this.successor = successor;
}
public abstract void processRequest(LeaveRequest request);
}
class LeaveRequest {
private String employeeName;
private int leaveDays;
public LeaveRequest(String employeeName, int leaveDays) {
this.employeeName = employeeName;
this.leaveDays = leaveDays;
}
public String getEmployeeName() {
return employeeName;
}
public
标签:请求,处理,Approver,模式,employeeName,责任,设计模式,public,successor
From: https://blog.csdn.net/liu_rockefeller/article/details/137500695