标签: oop design-patterns
责任链似乎与过滤模式非常相似。我想知道:
如果它们不同,那么哪个域适用而另一个不适用。
答案 0 :(得分:8)
我认为主要区别在于,在过滤模式中,链中的所有过滤器都将按给定顺序执行。 责任链更具弹性 - 每个链元都决定两件事:
责任链中的主要概念是将转向逻辑转换为链元素。 调用代码不必做出决定(通过一些复杂的IF语句)应该调用哪个逻辑,但“逻辑”(提取到链的元素)本身知道它是否应该处理请求。
在我看来,过滤模式是责任链的简化变体。