Полагаю, это общий вопрос, но я постараюсь описать мою текущую проблему.
У меня есть базовый сервис, назовем его «CoreService», который обеспечивает, я бы сказал, «основную» функциональность: обрабатывать данные в БД (у нас есть централизованная БД в наших приложениях). Существует ряд других приложений, некоторые из которых имеют свои собственные БД для локальных целей. И есть один простой «Сервис уведомлений». Его целью является трансляция сообщений разным подписчикам.
Обычно этот NotificationService вызывается из «ExternalWorld» и отправляет уведомления различным службам (среди них «CoreService»).
Сегодня я увидел необходимость вызвать NotificationService из CoreService.
Меня беспокоит то, что я ввожу циклическую зависимость: NotificationService необходимо знать, как отправлять сообщения каждому сервису (включая «CoreService», поэтому ему нужно знать об интерфейсе «CoreService» и, следовательно, ссылаться «CoreService») и «CoreService» должны отправлять сообщения в «NotificationService» (поэтому он также должен ссылаться на него) ... Круговая зависимость ...
Вопрос: Как нам построить нашу архитектуру для решения такой проблемы?
Большое спасибо!