设计模式-责任链(职责链)模式及责任链设计模式的应用

本文介绍了责任链设计模式的定义、优点、缺点和适用场景,并与策略模式进行了对比。通过一个员工请假审批的模拟例子,展示了如何在Java中实现责任链模式,包括抽象处理者、具体处理者(开发经理、项目经理、总经理)的实现,以及如何构建和执行责任链。文章还探讨了纯和不纯的职责链模式的差异。
摘要由CSDN通过智能技术生成

1.什么是责任链设计模式

责任链设计模式主要构成有抽象处理者、具体处理者、客户类,在处理请求的时候,将请求通过客户类发送至处理链路上,这样所有处理对象都有机会处理请求,使发送者与接受者解耦

在责任链模式中,客户只需要将请求发送到责任链上即可,无须关心请求的处理细节和请求的传递过程,所以责任链将请求的发送者和请求的处理者解耦了。

在这里插入图片描述

2.责任链模式的优点/缺点和使用场景

使用责任链模式的优点:

  • 发送者与接收方的处理对象类之间解耦
  • 封装每个处理对象,处理类的最小封装原则
  • 可以任意添加处理对象,调整处理对象之间的顺序,提高了维护性和可拓展性可以根据需求新增处理类,满足开闭原则
  • 增强了对象职责指派的灵活性,当流程发生变化的时候可以动态的改变链内的调动次序可动态的新增或者删除
  • 责任链简化了对象之间的连接。每个对象只需保持一个指向其后继者的引用,不需保持其他所有处理者的引用,这避免了使用众多的 if 或者 if···else 语句。
  • 责任分担。每个类只需要处理自己该处理的工作,不该处理的传递给下一个对象完成,明确各类的责任范围,符合类的单一职责原则。

使用责任链模式的缺点:

  • 不能保证每个请求一定被处理。由于一个请求没有明确的接收者,所以不能保证它一定会被处理,该请求可能一直传到链的末端都得不到处理。
  • 对比较长的职责链,请求的处理可能涉及多个处理对象,系统性能将受到一定影响。
  • 职责链建立的合理性要靠客户端来保证,增加了客户端的复杂性,可能会由于职责链的错误设置而导致系统出错
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值