Уведомления в чистой архитектуре

Есть кейс создания клиента.

Controller -> CreateClientRequest -> CreateClientUseCase -> ClientEntity[assigned: UserEntity]

Клиенту назначается ответственный assigned.

После создания нужно уведомить клиента о назначенном пользователе, а пользователя о поступившем клиенте.

При этом у пользователя есть настройки уведомлений, например: Email, Push, SMS.

Вопрос: Как реализовать такую агрегацию в чистой архитектуре?


Ответы (1 шт):

Автор решения: Mira

Вам надо использовать паттерн "наблюдатель", как раз предназначенный следить за изменениями в состоянии и оповещать другие классы (вызывать методы других классов).

А например у пользователя фабрикой создавать обьекты смс, пуш, имейл, и у них один интерфейс, один родитель, чей метод "послать сообщение" и будет вызываться.

→ Ссылка