gpt4 book ai didi

java - 责任链 : loop or next?

转载 作者:搜寻专家 更新时间:2023-10-30 21:32:57 25 4
gpt4 key购买 nike

我正在实现责任链模式。

我有可以组合在一个列表中的不同策略,并且我有一个处理策略列表的处理器。每个策略都可以处理 CustomInput,并且可以选择是否也应处理其余策略。

interface Policy {    
public boolean process(CustomInput input);
}

interface Processor {
public void process(List<Policy> policies, CustomInput input)
}

我打算实现处理器循环遍历策略列表并检查每个策略的 boolean 结果以了解是否继续执行其余策略。

我的同事建议将下一个 Policy 传递给每个 Policy 并让它们调用(或不调用)下一个(例如 FilterChain 所做的)。

我的问题如下:

与遍历每个策略并检查其结果相比,我在第二种解决方案(将下一个策略传递给当前正在处理的策略)中没有看到任何好处吗?

最佳答案

你能不能实现一个让两个组件都有部分控制的折衷方案?

interface Policy {
public Policy process(CustomInput input, Policy defaultNext);
}

process 然后可以默认返回 defaultNext 除非它有自己的选择。

关于java - 责任链 : loop or next?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20354384/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com