设计模式的分类
我们都知道有 23 种设计模式,这 23 种设计模式可分为如下三类:
- 创建型模式(5 种):单例模式、工厂方法模式、抽象工厂模式、建造者模式、原型模式。
- 结构型模式(7 种):适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。
- 行为型模式(11 种):策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。

设计模式系列文章传送门
什么是责任链模式
责任链模式(Chain of Responsibility Pattern)是一种行为设计模式,责任链模式将多个对象(处理器)连接成一条链,当一个请求被发送到这个链上时,每个处理器都有机会处理这个请求,如果一个处理器能够处理该请求,它就会处理,然后这个请求就不再继续沿着链传递,如果它不能处理,就会把请求传递给链上的下一个处理器。
责任链模式的组成部分
- 抽象处理者(Handler):它定义了一个处理请求的接口,并且包含一个指向后续处理者(也就是链中的下一个处理者)的引用,通常这个抽象类或者接口有一个方法来设置下一个处理者,还有一个抽象方法来处理请求。
- 具体处理者(Concrete Handler):这是抽象处理者的具体实现类,每个具体处理者都实现了处理请求的方法,在这个方法中,它首先判断自己是否能够处理这个请求,如果可以,就进行处理,如果不行,就将请求转发给下一个处理者(如果有下一个处理者的话)。
责任链模式案例演示
生活中有很多案例都可以使用责任链模式来处理,例如工作中的请假场景,假设我们有一个请假审批系统,请假天数不同需要不同级别的领导审批,比如,员工请假时长小于 2天,主管审批即可,请假请假时长3 - 5 天,需要经过部门经理审批,而请假 5 天以上,则需要部门总经理审批,在这个场景中请假审批就可以抽象出一个处理者,而主管、经理、总就是总经理具体的处理者,我们使用代码来演示一下。
AskForLeaveInfo(请假信息类)
AskForLeaveInfo 定义了请假的基本信息,,代码如下:
public class AskForLeaveInfo {
private String name;
//请假时长 单位:天
private int lengthLeave;
public AskForLeaveInfo(String name, int lengthLeave) {
this.name = name;
this.lengthLeave = lengthLeave;
}
public String getName() {
return name;
}
public void

最低0.47元/天 解锁文章
2029

被折叠的 条评论
为什么被折叠?



