Oop 责任链和过滤模式之间的区别是什么

Oop 责任链和过滤模式之间的区别是什么,oop,design-patterns,Oop,Design Patterns,责任链似乎和过滤模式非常相似。我想知道: 如果它们不同,那么问题域是什么,一个适用,另一个不适用。我认为主要区别在于,在过滤器模式中,链中的所有过滤器都将按给定顺序执行。 责任链更具弹性-每个链元素决定两件事: 如果它应该处理这个请求 它是否应该将请求传递给下一个链元素 责任链的主要概念是将指导逻辑转移到链元素中。 调用代码不必(通过一些复杂的IF语句)决定应该调用哪个逻辑,但“逻辑”(提取到链的一个元素)本身知道它是否应该处理请求 在我看来,过滤模式是责任链的简化变体。这可能更适合

责任链似乎和过滤模式非常相似。我想知道:


如果它们不同,那么问题域是什么,一个适用,另一个不适用。

我认为主要区别在于,在过滤器模式中,链中的所有过滤器都将按给定顺序执行。 责任链更具弹性-每个链元素决定两件事:

  • 如果它应该处理这个请求
  • 它是否应该将请求传递给下一个链元素
  • 责任链的主要概念是将指导逻辑转移到链元素中。 调用代码不必(通过一些复杂的IF语句)决定应该调用哪个逻辑,但“逻辑”(提取到链的一个元素)本身知道它是否应该处理请求


    在我看来,过滤模式是责任链的简化变体。

    这可能更适合