java责任链设计模式(功能链)

Posted yefengyu

tags:

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

1、概述

    网上讲述大部分责任链设计模式如下图,将责任链定义为:使多个对象都有机会处理同一个请求(下图中的数据),从而避免请求的发送者和接收者之间的耦合关系。将这些对象连成一条链(下图的A B C),并沿着这条链传递该请求,直到有一个对象处理它为止。

技术图片

    我所讲解的和这个不太一样,网上一般讲的是如果请求(数据)来了,对象A是否能处理?处理不了转为链条的一个对象B去处理,B处理不了则继续往下走,以此类推,并且只要有一个对象可以处理,就不会继续往下走了。比如A能处理,则处理之后就返回。我所讲的应该称为功能链比较合适,它适用的范围更广,大概流程如下:

技术图片

    针对一个请求,有很多处理流程,每一个流程比较独立,但是处理流程比较类似。这还不简单吗?不过我的需求是,系统可能内置了A、B、C三个对象对事件进行处理,假如我现在要对事件增加一个处理逻辑,该怎么办?今天比较晚了,明天继续。。。

 

 

 

 

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

java 设计模式 -- 责任链模式

java-设计模式-责任链

JAVA设计模式之责任链模式

java责任链模式及项目实际运用

Java 设计模式之责任链学习与掌握

Java 设计模式之责任链学习与掌握