美文网首页
责任链模式

责任链模式

作者: 坤坤坤坤杨 | 来源:发表于2022-12-09 18:48 被阅读0次

    1. 概念

    责任链模式(Chain of Responsibility),行为型设计模式之一。

    这个链的形式更像是数据结构中的单链表,链中的每个节点都有自己的职责,同时也持有下一个节点的引用,属于自己职责范围内的请求就自行处理,并完成请求的处理;而不属于的职责就传递给下一个节点。每个节点都是如此循环,直至请求被处理或者已经没有处理节点。

    基本结构
    • Client:客户端,请求的发起者
    • Handler:抽象处理者,声明一个请求方法,并在其中保持一个对下一个处理节点Handler对象的引用
    • ConcreteHandler:具体处理角色,对请求进行处理;如果不能处理则将请求转发给下一个节点对象处理

    2. 优缺点

    1. 优点
      • 降低了系统耦合度。它将请求的发送者与接收者进行了解耦
      • 简化了对象。它使得对象不需要知道链的结构
      • 增强了给对象指派职责的灵活性。通过改变链内
    2. 缺点
      • 性能问题。每个请求都要从头遍历到链尾,特别是在责任链比较长的时候,性能是一个非常大的问题
      • 可能请求得不到处理,被放置在责任链的末端
      • 调试不方便。在链条比较长和环节比较多的时候,调试时逻辑可能比较复杂
    在设计责任链模式的程序时,要注意的点
    • 明确请求者与请求内容。发送请求的对象为请求者,请求的内容通过发送请求时的参数进行传递
    • 明确责任人。责任人是构成责任链的关键要素,即是链条上的节点
    • 责任人可自由组合。责任链上的责任人可以根据业务的具体逻辑进行自由组合和排序

    3. 使用场景

    • 有多个对象可以处理同一个请求,具体哪个对象处理该请求由运行时自动确定
    • 请求的处理具有明显的层层递进关系
    • 请求的处理流程和顺序需要程序运行时动态确定

    相关文章

      网友评论

          本文标题:责任链模式

          本文链接:https://www.haomeiwen.com/subject/gyozfdtx.html