Symfony2 Handler vs Listener有什么区别?

时间:2015-10-28 20:33:44

标签: symfony

我需要创建侦听器或处理程序,以便为 AccessDenied异常提供一些操作。

我看过一些标准处理程序和监听器的来源,所以看起来它们可以用于同样的任务。

我也读到了这个:

  1. What's the difference between Event Listeners & Handlers in Java?
  2. JavaScript - What's the difference between event handlers & listener?
  3. Using Symfony2's AccessDeniedHandlerInterface
  4. 但只有我见过的差异 - 处理程序经常用于处理异常。

    那么,Symfony中处理程序和监听器之间的真正区别是什么?

1 个答案:

答案 0 :(得分:5)

发生事件时会注册并调用

Listeners。使用ObserverPubSub模式。

Handler更多的是strategy pattern,它将实现细节委托给了类。哪个可以替代。 (继承的构成)

在某些情况下,这些模式可能是可以互换的,而且代码的意图更多的是要求一个或另一个。