Выбор ответа Junior Архитектура: MVVM, MVI, Clean обновлено

Роль репозитория

Вопрос

Какова роль репозитория в рекомендованной архитектуре?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: Быть единой точкой доступа к данным и скрывать, откуда они: сеть, база, кеш. Репозиторий изолирует остальное приложение от источников данных: решает, когда идти в сеть, когда отдать кеш, разрешает конфликты, преобразует DTO.

Варианты ответа

  1. Хранить ссылки на Activity и Context, чтобы показывать ошибки загрузки
  2. Быть единой точкой доступа к данным и скрывать, откуда они: сеть, база, кешправильный ответ
  3. Готовить UI-модели и форматировать строки для отрисовки на экране
  4. Заменять ViewModel на простых экранах, где нет пользовательского ввода

Разбор

Репозиторий изолирует остальное приложение от источников данных: решает, когда идти в сеть, когда отдать кеш, разрешает конфликты, преобразует DTO. ViewModel работает с репозиторием через интерфейс и не знает о Retrofit или Room. Ссылки на Activity и отрисовка UI сюда не относятся, ViewModel он не заменяет.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.