责任链模式 Chain of Responsibility
1、什么是责任链模式
责任链模式为请求创建一个接收者对象的链,每个接收者都包含对另一个接收者的引用。如果一个对象不能处理请求,它会将请求传递给链中的下一个接收者,如此模式下,请求沿着链传递,直到有一个对象能够处理它。
2、为什么使用责任链模式
- 解耦发送者和接收者:责任链模式允许请求的发送者和接收者解耦,发送者不需要知道请求的处理者是谁,处理者也不需要知道请求的发送者是谁。
- 动态添加处理者:可以动态地添加或修改处理者,灵活性较高。新的处理者可以很容易地被插入到链中。
- 避免请求的发送者与接收者直接耦合:责任链模式避免了直接连接发送者与接收者,降低了系统的耦合度。
3、如何使用责任链模式
设计实现一个关于请假审批的链
// 请求类
class LeaveRequest {
private String employee;
private int days;
LeaveRequest(String employee, int days) {
this.employee = employee;
this.days = days;
}
String getEmploy