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

1、概述

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

image

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

image

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

猜你喜欢

转载自www.cnblogs.com/yefengyu/p/10534353.html