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

Laravel 5 Event - Is this a mediator or observer?

我今天正在与另一位开发人员讨论 Laravel 的事件系统。他提到 Laravel 的事件分发器使用观察者模式。

我一直认为它实现了中介模式,因为您的对象总是通过事件调度程序对象 listen/fire 事件,但文档说它是一个观察者。

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

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

这不是中介模式吗?

我不清楚 Laravel 的具体作用,实际上如果文档说它是建立在观察者模式之上的,我会相信。

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

  • listen 类似于 Observer 的 subscribe/attach
  • fire 类似于 Observer 的 notify/update

调解器在这里对我来说似乎很奇怪,因为即使其目的是促进某些对象之间的通信,我也不能将其视为分发通知的好方法。出于这个原因,我肯定会打赌观察员。