定义
- 将能够处理同一类请求的对象连成一条链,所提交的请求沿着链传递,链上的对象逐个判断是否有能力处理该请求,如果能则处理,如果不能则传递给链上的下一个对象。
场景
- 打牌时,轮流出牌
- 接力赛跑
- 大学中,奖学金审批
- 公司中,请假条审批
- 如果请假天数小于3天,主任审批
- 如果请假天数大于等于3天,小于10天,经理审批
- 如果大于等于10天,小于30天,总经理审批
- 如果大于等于30天,提示拒绝
代码解析(请假条审批)
分装请假的基本信息
1 | /** |
抽象类
1 | /** |
领导具体实现
1 | /** |
调用
1 | /** |
结果:
员工:tom请假,天数:10,理由:回家探亲
总经理:王五,审批通过!
开发中常见的场景
- Java中,异常机制就是一种责任链模式。一个try可以对应多个catch,当第一个catch不匹配类型,则自动跳到第二个catch
- javascript语言中,事件的冒泡和捕获机制。Java语言中,事件的处理采用观察者模式
- Servlet开发中,过滤器的链式处理
- Struts2中,拦截器的调用也时责任链模式
注:该博文为学习总结,视频来源为高淇java300集