Событие Laravel 5 — это посредник или наблюдатель?

Сегодня я обсуждал систему событий Laravel с другим разработчиком. Он упомянул, что диспетчер событий Laravel использует шаблон наблюдателя.

Я всегда думал, что он реализовал шаблон-посредник, поскольку ваши объекты всегда прослушивают / запускают события через объект диспетчера событий, но док говорит, что это наблюдатель.

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

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

Разве это не образец посредника?

1

Решение

Я не имею точного представления о том, что конкретно делает Ларавел, и на самом деле, если док говорит, что он построен по схеме наблюдателя, я бы поверил.

Однако ваш вопрос о том, как выглядит код, и по моему опыту я могу легко узнать наблюдателя здесь по аналогии:

  • Слушать будет похоже на Наблюдатель подписывается / прикрепляется
  • Пожар будет похоже на Уведомление / обновление наблюдателя

Посредник показался бы мне здесь странным, потому что, хотя цель состоит в том, чтобы облегчить связь между некоторыми объектами, я не вижу в этом хорошего способа распространения уведомлений. Я бы определенно сделал ставку на наблюдателя по этой причине.

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]