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
调解器在这里对我来说似乎很奇怪,因为即使其目的是促进某些对象之间的通信,我也不能将其视为分发通知的好方法。出于这个原因,我肯定会打赌观察员。
我今天正在与另一位开发人员讨论 Laravel 的事件系统。他提到 Laravel 的事件分发器使用观察者模式。
我一直认为它实现了中介模式,因为您的对象总是通过事件调度程序对象 listen/fire 事件,但文档说它是一个观察者。
Event::listen('event.name', function ($foo, $bar) {
//
});
Event::fire("event.name", []);
这不是中介模式吗?
我不清楚 Laravel 的具体作用,实际上如果文档说它是建立在观察者模式之上的,我会相信。
但是你的问题是关于代码是什么样的,根据我的经验,我可以很容易地通过类比识别这里的观察者:
- listen 类似于 Observer 的 subscribe/attach
- fire 类似于 Observer 的 notify/update
调解器在这里对我来说似乎很奇怪,因为即使其目的是促进某些对象之间的通信,我也不能将其视为分发通知的好方法。出于这个原因,我肯定会打赌观察员。