java – 责任链:循环还是下一步?

前端之家收集整理的这篇文章主要介绍了java – 责任链:循环还是下一步?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在实行一连串责任模式.

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

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

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

我将实施处理器循环遍历政策列表,并检查每个策略的布尔值结果,以了解是否继续执行其他策略.

我的同事建议通过下一个策略到每个策略,让他们调用(或不)下一个(例如FilterChain).

我的问题如下:

在第二个解决方案中没有看到任何好处(通过下一个策略到当前处理的方案),循环遍历每个策略并检查它的结果?

解决方法

通过下一个的想法对我来说是没有意义的.所以我想要一个链:
A - B - C - D

C如何知道D?如果它在C的代码中,则对链的任何更改将是一个巨大的麻烦来实现.

链条需要遵循已经存在的一些其他路径,例如响应者在他们只是向每个父母(“四人帮”的例子中)提出帮助请求时做的,或者您需要构建链,这就是为什么在Go4部分的底部,他们提到复合模式是一个自然而然的共犯.

请注意,做责任链的主要原因之一是可能对该项目操作的类型不同.这使得用Java中的接口实现它完美.

回答你的主要问题:在这种情况下使用责任链的好处是两个方面:1.你没有做出一个神对象,知道可能发生的一切事情来实现目标(成功建立一个政策),以及2.你不必放入很多丑陋的检查代码,看看你什么时候到达终点站,因为谁处理它,通过不调用其继任者,将提示完成的项目的返回.

原文链接:https://www.f2er.com/java/125576.html

猜你在找的Java相关文章