责任链模式和过滤器模式有什么区别?

5

职责链模式看起来与过滤器模式非常相似。我想知道:

如果它们不同,那么在哪些问题域中一个适用而另一个不适用。


这个问题可能更适合在programmers.stackexchange.com上讨论。 - watery
1个回答

11

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

  1. 它是否应该处理请求
  2. 是否将请求传递给下一个链元素

责任链中的主要概念是将控制逻辑移动到链元素中。 调用代码不必做出决策(通过某些复杂的IF语句)哪种逻辑应该被调用,而是“逻辑”(提取到链的元素中)本身知道是否应该处理请求。

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接