工作中学习到的新知识点: 责任链模式

本文介绍了责任链模式,分析其定义、与非责任链模式的区别,并探讨了适合使用责任链模式的场景,如审批流程、请求参数处理等。文章还讨论了责任链的执行情况,并提供了代码示例。此外,还提到了设计模式的六大原则,如单一职责原则、里氏替换原则等,强调了面向接口编程的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言:

        对工作项目中的知识点归纳总结.


背景: 

        在项目的开发中因为有业务用到了该设计模式, 提供了优秀的模板代码, 项目中是如何使用责任链模式的, 因工作内容保密, 本文就不展开讲了, 具体内容间, 开发平台的jira链接, 这里就不放了.

本文主旨介绍责任链模式, 首先分析, 再到代码demo, 今后合适的业务场景做到举一反三

1. 什么是责任链模式?

给定一个对象, 交给责任链, 该对象会经过链路流程处理, 当业务流程发生变化时, 可以动态的改变链内的成员, 或者改变成员之间的次序, 又或者动态的新增或者删除责任成员

2. 使用责任链模式和不使用有何区别?

如果业务逻辑合适, 但是不使用责任链模式, 代码中可能出现多个if-else判断分支, 后续业务需求发生变动, 涉及到的代码改动比较麻烦

而在合适的业务场景使用了责任链模式, 只需要维护类似单个子类连接的链路, 类似达到了热插拔的效果

  • 需要新增业务处理, 可以添加子处理类
  • 删除业务, 可以减少子处理类
  • 改变业务处理顺序, 改变子处理类之间的处理指向顺序

3. 有哪些合适的场景可以使用到链路模式?

  1. 审批流程:在企业中,许多操作需要经过审批流程,例如请假申请、报销审核等。责任链模式可以用于构建审批流程,每个审批节点负责处理特定的审批任务,并将请求传递给下一个审批节点。这样可以实现灵活的审批流程,并且每个节点可以根据自身的规则和权限来决定是否通过或拒绝请求。

  2. 请求的参数验证、安全检查、数据转换、日志记录等都可以作为责任链的环节,每个环节负责处理一部分请求任务,并将请求传递给下一个环节进行处理

  3. 异常处理:在系统开发中,异常处理是一个重要的方面。责任链模式可以用于构建异常处理流程,每个处理节点负责处理特定类型的异常或错误情况,并将异常传递给下一个处理节点。这样可以实现异常的分层处理,每个节点负责处理自己擅长的异常类型。

4. 责任链有哪些执行情况?

责任链模式在执行时有以下几种情况:

  1. 请求被处理:当一个请求被处理时,责任链模式中的某个处理器接受并处理该请求。处理器可能根据自身的逻辑和条件来判断是否能够处理请求,如果能够处理,则执行相应的处理逻辑并结束责任链的执行。

  2. 请求被转发:如果一个处理器不能处理请求,它可以选择将请求转发给下一个处理器。转发请求意味着将请求传递给责任链中的下一个处理器,以便后续的处理器继续处理请求。

  3. 请求终止:责任链模式中的某个处理器可以选择终止责任链的执行,即不再将请求传递给下一个处理器。这通常在某些条件下,处理器确定无需继续处理请求或无法处理请求时发生。

  4. 完整遍历责任链:当一个请求在责任链中传递时,它可能会经过多个处理器,直到找到能够处理该请求的处理器为止。这涉及责任链中的多次请求处理和转发,直

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值