责任链模式(Chain of Responsibility)

Posted stpan

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了责任链模式(Chain of Responsibility)相关的知识,希望对你有一定的参考价值。

  • 定义:为一个请求定义含有链状关系的接受对象,基于请求的类型,松耦合发送者和接受者之间的关系。
  • 实现方式:
    • 首先定义一个抽象类,包括一个公共抽象行为和决定子类链状关系的属性,然后创建一系列对象继承这个抽象类,
    • 然后创建责任链关系(可线形结构、环形结构或树状结构)方法并返回顶级责任链类;

技术分享图片

 

  • JDK实例:java.util.logging.Logger#log();javax.servlet.Filter#doFilter();
  • 项目实例:PR分级审批;
  • 优点:将职责分类隔离处理,降低耦合,符合开闭原则,不需修改原有代码,新增一个责任类即可;
  • 缺点:链结构遍历,性能有影响;

以上是关于责任链模式(Chain of Responsibility)的主要内容,如果未能解决你的问题,请参考以下文章

责任链模式(Chain of Responsibility)

15-责任链(Chain of Responsibility)模式Ruby实现

责任链模式(Chain of Responsibility Pattern)

责任链模式(chain of responsibility)

责任链模式(Chain of Responsibility)

设计模式(13)--Chain of Responsibility(责任链模式)--行为型