【发布时间】:2012-11-12 19:02:37
【问题描述】:
如果我有多个需要修改请求的节点,是否仍然使用“责任链”设计模式是个好主意?还是应该只在只有一个(未知)节点专门处理请求时才使用这种模式?
IE:节点 2 和节点 3 都需要影响请求 (R)。所以即使节点 2 处理了请求,我仍然想继续将请求沿着列表传递给下一个处理程序
+--------+ (R) +--------+ (R) +--------+ (R)
Client Request (R) | Node 1 |----->| Node 2 |----->| Node 3 |----->etc...
+--------+ +--------+ +--------+
【问题讨论】:
-
嗯?你想用这个设计在 php 中做什么?
-
@Neal 在 *nix 系统上的 PHP 站点中,我必须创建一个模块,该模块需要验证目录树的权限和用户/组设置。因此,对于树中的每个请求,我需要通过这个链向下发送它,节点 1 可能会验证请求是否是目录并检查是否设置了正确的权限,节点 2 可能会检查请求是否是文件并验证权限.但是每个请求还需要验证每个请求的用户/组集。但你是对的 - 我不需要将这个问题标记为 PHP(习惯)
标签: algorithm design-patterns chain-of-responsibility