Laravel 5事件 - 这是调解员还是观察者?

时间:2016-02-15 16:17:11

标签: php design-patterns laravel-5 observers mediator

我今天和其他开发者讨论了Laravel的事件系统。他提到Laravel的事件调度员使用观察者模式。

我一直认为它实现了一个中介模式,因为你的对象总是通过一个事件调度器对象来监听/触发事件,但是文档说它是一个观察者。

Event::listen('event.name', function ($foo, $bar) {
    //
});

Event::fire("event.name", []);

这不是调解员模式吗?

1 个答案:

答案 0 :(得分:2)

我对Laravel具体做的事情没有确切的想法,实际上如果文档说它是建立在观察者模式上的话,我会相信它。

然而你的问题是关于代码的样子,根据我的经验,我可以很容易地通过类比识别观察者:

  • 倾听类似于观察者的订阅/附加
  • fire 类似于 Observer的通知/更新
对我来说,调解员看起来很奇怪,因为即使目的是促进某些对象之间的通信,我也不能将其视为分发通知的好方法。因此,我肯定会打赌观察员。