Algorithm 责任链是否可以让多个节点修改请求?
如果我有多个节点需要修改一个请求,那么仍然使用“责任链”设计模式是一个好主意吗?或者,只有当只有一个(未知)节点专门处理请求时,才应该使用此模式吗 IE:节点2和节点3都需要影响请求(R)。因此,即使节点2处理该请求,我仍然希望继续将该请求沿着列表传递给下一个处理程序Algorithm 责任链是否可以让多个节点修改请求?,algorithm,design-patterns,chain-of-responsibility,Algorithm,Design Patterns,Chain Of Responsibility,如果我有多个节点需要修改一个请求,那么仍然使用“责任链”设计模式是一个好主意吗?或者,只有当只有一个(未知)节点专门处理请求时,才应该使用此模式吗 IE:节点2和节点3都需要影响请求(R)。因此,即使节点2处理该请求,我仍然希望继续将该请求沿着列表传递给下一个处理程序 +--------+ (R) +--------+ (R) +--------+ (R) Client Request (R) | Node 1 |----->| Node 2
+--------+ (R) +--------+ (R) +--------+ (R)
Client Request (R) | Node 1 |----->| Node 2 |----->| Node 3 |----->etc...
+--------+ +--------+ +--------+
在我看来,您最好使用模式,因为每一步都会添加某种转换和/或验证 这张照片是从上面类似的地方拍摄的
在任何时候,其中一个过滤器都可以决定处理该请求,而不将其传递给下一个过滤器。在上面的示例中(如果是http请求),未经验证的请求将导致401 http状态代码 嗯??使用这种设计,你想在php中做什么?@Neal在*nix系统上的一个php站点中,我必须创建一个模块,该模块需要验证目录树的权限和用户/组设置。因此,对于树中的每个请求,我需要通过这个链发送它,节点1可能会验证请求是否为目录并检查设置了正确的perm,节点2可能会检查请求是否为文件并验证perm。但是,每个请求还需要验证每个请求的用户/组集。但是你是对的,我不需要把这个问题贴上PHP(习惯)的标签,这不就是责任链吗?