我正在实施责任链模式。
我有不同的策略可以组合在一个列表中,我有一个处理器来处理策略列表。每个策略都可以处理 CustomInput,并且可以选择是否也应处理其余策略。
interface Policy {
public boolean process(CustomInput input);
}
interface Processor {
public void process(List<Policy> policies, CustomInput input)
}
我打算实现处理器循环遍历策略列表并检查每个策略的布尔结果以了解是否继续执行其余策略。
我的同事建议将下一个策略传递给每个策略,并让他们调用(或不调用)下一个策略(例如 FilterChain 所做的)。
我的问题如下:
在第二个解决方案(将下一个策略传递给当前正在处理的策略)中,我在循环每个策略并检查其结果方面看不到任何好处吗?