2

如果我有多个节点需要修改请求,那么仍然使用“责任链”设计模式是否是个好主意?还是应该只在只有一个(未知)节点专门处理请求时才使用这种模式?

IE:节点 2 和节点 3 都需要影响请求 (R)。因此,即使节点 2 处理了请求,我仍然想继续将请求向下传递到列表中的下一个处理程序

                    +--------+ (R)  +--------+ (R)  +--------+ (R)
Client Request (R)  | Node 1 |----->| Node 2 |----->| Node 3 |----->etc...
                    +--------+      +--------+      +--------+
4

1 回答 1

0

从我的角度来看,您最好使用管道和过滤器模式,因为每个步骤都会添加某种转换和/或验证。

这张图片取自上面的类似图片

在此处输入图像描述

在任何时候,其中一个过滤器都可以决定处理请求而不将其传递给下一个过滤器。在上面的示例中,(如果是 http 请求),未经身份验证的请求将导致 401 http 状态代码。

于 2012-11-12T20:18:42.857 回答