Что такое events в IoC?

Принцип инверсии зависимостей(IoC) часто иллюстрируют такой схемой:
oYukX.jpg

На ней показано, что сам принцип это собирательное понятие, это некоторый результат, которого можно достичь применяя техники:
service-locator,
dependency injection (3 типа),
делегирование,
events

Мне понятны все эти техники кроме events. Подскажите пожалуйста в чём её суть
  • Вопрос задан
  • 463 просмотра
Пригласить эксперта
Ответы на вопрос 1
dkrylov
@dkrylov
суть в том, что Вы можете не писать код сплошняком в одном и том же классе, если система модульная и код нужно использовать из разных модулей.

К примеру, есть 2 модуля, и нужно организовать между ними автоматическое взаимодействие, когда происходит какое либо событие в одном из модулей. Например в модуле 1 мы создали сущность, и по задаче у нас в модуле 2 должна создаться какая то сущность.

И вот чтобы не использовать классы из модуля №1 в модуле №2 и наоборот, можно выбрасывать событие - например entityCreated - это событие(идентификатор, и возможно параметры) выбрасывает модуль 1, а модуль 2 должен быть подписан на это событие (это уж у кого как реализовано). Я делал так - в БД таблица handlers, там связки ИД события => обработчик.

Как запускать обработчики событий - тоже по разному можно сделать)
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы