дергать sms-service, email-service, push-service.
Можно ли применить pattern strategy?
Мне еще нужно сохранять каждый отправленный notification. Как мне сохранять его? Внутри каждой стратегии?
Если да, то как заинжектить repository? Если через конструктор, то при создании буду передавать repository, это норм?
Или просто пометить всё как component и через autowired заинжектить?
в джава старт
репозиторий увидел и сразу в жаву старт 😄
твой вопрос для этого чата например: про компонент или autowired
мой вопрос вообще не про компонент
В первом приближении: sms-service, email-service, push-service - это чисто технические сервисы, они могут иметь один интерфейс и должны принимать условно адрес получателя (телефон, мыло, etc) и сообщение в notification service инжектится один или несколько этих сервисов, формируется сообщение и отправляется, какая реализация будет заинжекчена может быть детерминировано активным профилем Возможно куча разных вариантов, т.к. это зависит от бизнес-задачи
NotificationService NotificationSender NotificationRepository Sender — интерфейс с N реализациями. Repository — интерфейс с, скорее всего, одной реализацией, который отвечает за сохранение твоих нотификаций. Сам отправитель нотификаций вообще ничего не должен знать о сохранении, ибо single responsibility. Твой сервис в себе уже будет инкапсулировать общую логику. Но все это меркнет перед проблемой дедупликации доставки уведомлений, а раз этот вопрос не встаёт, то можешь реализовать как угодно.
Обсуждают сегодня