oop - 责任链和过滤模式有什么区别

标签 oop design-patterns

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

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

最佳答案

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

  • 如果它应该处理请求
  • 如果它应该将请求传递给下一个链元素

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

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

    关于oop - 责任链和过滤模式有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28009320/

    相关文章:

    multithreading - 所有事件驱动的框架都应该是单线程的吗?

    java - 在 Java 中动态创建对象

    python - OOP:设计这个对象的最佳方法是什么?

    c# - 存储库类应该在哪里?

    Java是按值传递吗?

    objective-c - 封装特定类型画笔在Objective-C中的绘制方式

    java - 分离数据模型和图形用户界面表示的设计模式

    java - 用于通过网络发送对象、保留指针的模式/库

    ruby - ruby 内部构造的批量分配

    database - 数据库 : To use identity column or not?