algorithm - 责任链能否有多个节点修改请求?

标签 algorithm design-patterns chain-of-responsibility

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

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

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

最佳答案

在我看来,使用 pipes and filters 会更好模式,因为每个步骤都会添加某种转换和/或验证。

此图取自上图

enter image description here

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

关于algorithm - 责任链能否有多个节点修改请求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13349822/

相关文章:

Java 快速排序二次运行时行为

java - 我应该公开组合对象吗?

c# - 在 C# 中,我应该使用 struct 来包装一个对象以实现额外的接口(interface)吗?

Java 泛型 : chaining together generic function object

c# - 使用 Func 的责任链

python - 查找类似功能/产品组合的模式(最好在 python 中)

python - 如何找到 2 个序列之间的重叠,并将其返回

java - 多维数组的时间复杂度(每次切割成四分之一时)

java - 这四个 Android 类包含的模式的名称是什么?

oracle - Oracle 过程中 if-else 过多,对性能有利还是不利?