Ответ 1 : Да, вы можете использовать один подход во всем. В большинстве случаев так будет проще.
Ответ 2 : я рекомендую вам использовать Агрегирование событий для этого. Таким образом, вы получите очень слабую связь между нажатием кнопки и выполнением потока. Таким образом, модуль прослушивания просто должен знать об одном событии независимо от того, откуда оно было вызвано.
Поскольку это одно уведомление , а не набор взаимосвязанных уведомлений / сообщений , лучше Агрегировать событие, а не создавать Общая служба .