Возможно ли использовать шаблон публикация-подписка с одним издателем и одним подписчиком? - PullRequest
0 голосов
/ 15 апреля 2019

Я не знаю, должен ли я использовать публикацию-подписку (кажется мне сейчас сексуально, но позже ...), наблюдателя или DI и вызывать методы. У меня две ситуации:

  • (A) один класс создает «событие», которое должно запускать код из другого класса (данные изменились - что-то пересчитать)
  • (B) один класс вызывает метод из другого класса и должен запускать код, когда что-то происходит в вызываемом методе после возврата вызванного метода (выполнить этот код, когда вы завершите часть задачи, потому что мне нужно изменить свое внутреннее состояние )

Параметры:

  1. Создайте некую шину событий, один класс подписывается на тему, другой класс публикует что-то для нее. Есть один издатель, один подписчик. Вещи отделены. Сложнее ориентироваться и выяснять, что и когда называется.
  2. Создайте список наблюдателей (с одним наблюдателем) в классе «событие» и уведомите его. Список содержит интерфейсы (или является чем-то вроде события в C #). Класс, который получает уведомление, должен знать, куда его добавить (в качестве наблюдателя). Не так, как в предыдущем случае, нет необходимости в шине событий.
  3. Используйте DI, чтобы внедрить экземпляр, о котором нужно уведомить непосредственно, в «издателя» и вызвать некоторый метод. Простой, чуть более спаренный?
  4. Обратный вызов передается из одного класса в другой либо во время некоторой инициализации (A), либо во время вызова метода (B) (передает обратный вызов другому методу, который будет вызван при необходимости, хорошо?)

    Просто хочу добавить, что система меняется очень быстро, это скорее подтверждение концепции или прототип.

...