mir*_*rta 5 java design-patterns chain-of-responsibility
我浏览了网页,但我无法找到问题的答案......
可以说我有3条链子.我希望请求传递所有3个链(如果链可以处理请求并不重要).是否可以使用CoR模式来解决这个问题?
为了更好地解释它 - 我有一个必须通过几组规则的列表.如果它通过第一个规则,列表保持不变.然后它继续到第二个规则,第二个规则更改列表.更改后的列表转到第3个规则,它会通过并保存更改后的列表.

嗯,我没有看到任何反对不这样做的理由。
您可以简单地声明您的Processor或无论您如何称呼它:
abstract class Processor {
private Processor successor;
public void setSuccessor(Processor successor) { this.successor = successor; }
public List process(List input) {
List processed = this.internalProcess(input);
if (successor != null) { return successor.process(processed); }
return processed;
}
protected abstract List internalProcess(List input);
}
Run Code Online (Sandbox Code Playgroud)
然后你可以定义例如:
public class ProcessorNoProcess extends Processor {
@Override protected List internalProcess(List input) {
// do nothing
return input;
}
}
Run Code Online (Sandbox Code Playgroud)
这就是你问的吗?