如果我有多个节点需要修改请求,那么仍然可以使用“责任链”设计模式吗?或者,只有当一个(未知)节点将专门处理请求时才使用此模式?
IE:节点2和节点3都需要影响请求(R)。因此,即使节点2处理请求,我仍然希望继续将列表中的请求传递给下一个处理程序
+--------+ (R) +--------+ (R) +--------+ (R)
Client Request (R) | Node 1 |----->| Node 2 |----->| Node 3 |----->etc...
+--------+ +--------+ +--------+
答案 0 :(得分:0)
从我的角度来看,最好使用pipes and filters模式,因为每个步骤都会添加某种转换和/或验证。
此图片取自上述
在任何时候,其中一个过滤器可以决定处理请求,而不是将其传递给下一个过滤器。在上面的示例中,(如果它是一个http请求),未经身份验证的请求将导致401 http状态代码。