Шаблон агрегатора событий для служебного общения - PullRequest
0 голосов
/ 07 апреля 2020

У меня есть PrintService для печати документов. Теперь у меня также есть PrintQueueService и PrintHistoryService, поэтому, когда документ распечатывается, мой PrintHistoryService получает новый элемент, а PrintQueueService запрашивает другой отпечаток, также у меня есть служба для отправки всей информации клиенту в режиме реального времени и служба для пу sh уведомления. Каково лучшее решение для этого?

  1. Внедрение служб друг в друга, поэтому в PrintService я внутренне вызываю PrintHistoryService.Add(...) et c.
  2. Отображение событий в сигнатуре службы, поэтому PrintService будет иметь OnPrintDone событие, а другие службы будут внедрять PrintService и подписываться на событие.
  3. Использовать шаблон агрегатора событий, чтобы не внедрять другие службы (только EventAggregator).

В настоящее время я планирую использовать третье решение, однако поиск в Google дает мне в основном использование при общении с ViewModels, поэтому считается ли это плохой практикой для обычного использования? Это будет лучшее решение или есть лучшее?

...