170 похожих чатов

Всем привет! Хочу реализовать notification service, который в свою очередь должен

дергать sms-service, email-service, push-service.
Можно ли применить pattern strategy?
Мне еще нужно сохранять каждый отправленный notification. Как мне сохранять его? Внутри каждой стратегии?
Если да, то как заинжектить repository? Если через конструктор, то при создании буду передавать repository, это норм?
Или просто пометить всё как component и через autowired заинжектить?

6 ответов

21 просмотр

в джава старт

Shoxrux- Автор вопроса
Artem
в джава старт

репозиторий увидел и сразу в жаву старт 😄

твой вопрос для этого чата например: про компонент или autowired

Shoxrux- Автор вопроса

В первом приближении: sms-service, email-service, push-service - это чисто технические сервисы, они могут иметь один интерфейс и должны принимать условно адрес получателя (телефон, мыло, etc) и сообщение в notification service инжектится один или несколько этих сервисов, формируется сообщение и отправляется, какая реализация будет заинжекчена может быть детерминировано активным профилем Возможно куча разных вариантов, т.к. это зависит от бизнес-задачи

NotificationService NotificationSender NotificationRepository Sender — интерфейс с N реализациями. Repository — интерфейс с, скорее всего, одной реализацией, который отвечает за сохранение твоих нотификаций. Сам отправитель нотификаций вообще ничего не должен знать о сохранении, ибо single responsibility. Твой сервис в себе уже будет инкапсулировать общую логику. Но все это меркнет перед проблемой дедупликации доставки уведомлений, а раз этот вопрос не встаёт, то можешь реализовать как угодно.

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта