美文网首页
行为型设计模式.责任链模式

行为型设计模式.责任链模式

作者: 双鱼子曰1987 | 来源:发表于2020-12-09 09:07 被阅读0次

一、概念

避免请求发送者与接收者耦合在一起,让多个对象都有可能接收请求,将这些对象连接成一条链,并且沿着这条链传递请求,直到有对象处理它为止。

1.1、定义

将请求的「处理对象」链接成链,请求将沿着对象链传递,直到有对象响应为止。链上每个对象都有机会处理请求,同时将请求的发送者和接收者进行解耦。


FB80B8F7-DA0E-411D-8824-143883F0FA59.png
  • Handler,处理者类:定义请求的通用处理接口,核心在于有个指向下一个Handler的next指针。
  • ConcreteHandler,具体处理类
1.2、解决的问题
  • 问题分析:当针对某个请求,有很多的对象都可以处理的时候。

  • 模式解决思路:定义处理抽象基类,将多个处理者Handler链接成链表,利用链表数据结构,一个个的处理。

二、模式的应用和优缺点

2.1、应用场景
  • 实例:ervlet、dubbo、mybatis中的过滤器filter。
2.2、优缺点
  • 优点:
    发送者和接收者分离,有效降低耦合度;同时扩展处理类容易,可以复用性强。

  • 缺点:
    链条太长的时候影响处理效率,且不能保证请求一定被接收。
    链表特性,导致代码调试时不太方便,不容易观察运行时的特征,且排查错误也不太容易。

相关文章

网友评论

      本文标题:行为型设计模式.责任链模式

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