Pull to refresh

Comments 8

  1. Добавляем NotificationResponseListener, потому что принимать письма это принципиально новая работа для нашей системы

  2. В NotificationService добавляем логику сопоставления запроса с ответом, потому что он формирует запрос. Так же для логично и привычно, чтобы получать ответ в том же месте, куда его отправили.

Ну привычно допустим - каждому своё. А логично то почему? Особенно если "принимать письма это принципиально новая работа для нашей системы".

Почему NotificationResponseListener не может заинджектить AuthService и разлогинить?

Принципиально новая логика, потому что это интеграционное взаимодействие, в рамках которого нужно тянуть данные с почтового ящика. Это полноценная отдельная сложная работа, которую нельзя просто так вмазать в то что уже есть, нужно изолировать.

Привычно и логично, потому что по своей сути это вызов функции с возвращаемым значением, и хотелось бы чтобы это так и выглядело (как вызов метода, для этого и был дан "рецепт 2"), независимо от того как оно устроено внутри. Не должно быть распадания на 2 независимых потока (исходящий и входящий).

NotificationResponseListener  не имеет полномочий принимать решение о том что нужно разлогинить, это ответственность AuthService.
NotificationResponseListener  только обеспечивает входной трафик, не вдаваясь в суть входящих сообщений.

Не должно быть распадания на 2 независимых потока (исходящий и входящий).

Это как? Сама физика мира разделяет на входящий и исходящий потоки.

Да, физически это 2 отдельных потока, но в этом и смысл дизайна, чтобы не обременять AuthService особенностями физики, а дать понятную абстракцию "запрос-ответ-реакция".
Вы же если в магазине заказываете товар которого нет в наличии приходите забирать его в этот же магазин, а не едете на склад.
Да, поездка на склад вполне рабочий вариант, но будет не очень удобно

Причём здесь AuthService? Я спрашивал зачем вы пытаетесь процесс "разлогинить пользователя" запихать в нотификации?

Если у вас появится нотификация "предложить юзеру участие в акции". Вы пользователя к акции тоже будете в сервисе нотификаций подключать?

Не, ни в коем случае я этого не пытаюсь сделать,
задача NotificztionService соединить запрос с ответом и отдать событие о том, что ответ получен сервисуу который генерировал запрос. В нашем случае AuthService, а уже его задача принять решение о разлогине.

Согласен что в примере не однозначно отразил идею, подумаю как скорректировать. Хотя я явно прописал, что в NotificationService нельзя явно вызывать логику разлогина

"Я сюда ни философствовать пришел"

Очепятка, здесь должно было быть "не".

Sign up to leave a comment.

Articles