设计模式 -- 责任链模式

前言

月是一轮明镜,晶莹剔透,代表着一张白纸(啥也不懂)

央是一片海洋,海乃百川,代表着一块海绵(吸纳万物)

泽是一柄利剑,千锤百炼,代表着千百锤炼(输入输出)

月央泽,学习的一种过程,从白纸->吸收各种知识->不断输入输出变成自己的内容

希望大家一起坚持这个过程,也同样希望大家最终都能从零到零,把知识从薄变厚,再由厚变薄!

一、什么是责任链模式?

        责任链模式(Chain of Responsibility Pattern)是一种行为型设计模式,它允许多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。

        在责任链模式中,每个处理器对象都包含一个指向下一个处理器对象的引用。当请求被发送时,它沿着链条依次传递,直到有一个处理器对象能够处理请求为止。

二、责任链模式的优缺点:

优点:

  1. 降低耦合度:责任链模式将请求的发送者和接收者解耦,使得请求发送者不需要知道请求的处理细节,只需要将请求发送给第一个处理者即可。

  2. 灵活性:责任链模式可以动态地组合处理者,增加或删除处理者,改变处理者之间的顺序,从而灵活地处理请求。

  3. 可扩展性:责任链模式可以方便地扩展新的处理者,而不需要修改原有的代码。

  4. 可维护性:责任链模式将请求的处理分散到多个处理者中,每个处理者只需要关注自己的处理逻辑,降低了代码的复杂度,易于维护。

缺点:

  1. 可能会造成性能问题:由于每个请求都需要遍历整个链,当链比较长时,会影响程序的性能。

  2. 可能会造成复杂性问题:责任链模式的实现需要仔细考虑链中每个节点的职责和顺序,否则可能会导致代码变得复杂难以维护。

  3. 可能会造成调试问题:由于请求的处理流程是由多个对象共同协作完成的,当出现问题时,需要逐个调试每个节点,增加了调试的难度。

三、责任链模式的结构:

        

四、责任链模式实战:

        以上图为例,假设现在小明需要请五天假,但是请的时间太长,直接leader不能做决定,得整个部门负责人确定.

1.创建抽象的责任链

 

2.创建具体责任人

 

3.测试 

 

 4.测试结果

 

五.总结:

责任链模式的应用场景:

  1. 日志记录:将日志记录分为不同的级别,例如 DEBUG、INFO、WARN、ERROR 等级别,每个级别对应一个处理器,根据日志级别选择对应的处理器进行处理。

  2. 购买流程:将购买流程分为不同的处理步骤,例如验证用户信息、验证商品信息、生成订单、支付等步骤,每个步骤对应一个处理器,根据购买流程选择对应的处理器进行处理。

  3. 异常处理:将异常处理分为不同的级别,例如 INFO、WARN、ERROR 等级别,每个级别对应一个处理器,根据异常级别选择对应的处理器进行处理。

  4. 数据校验:将数据校验分为不同的步骤,例如校验数据格式、校验数据合法性、校验数据重复性等步骤,每个步骤对应一个处理器,根据数据校验步骤选择对应的处理器进行处理。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值