@Mikhail_123

Как устроен паттерн Repository в Android?

Всем привет :) Информации в русскоязычном сегменте чуть больше чем ничего, хелп
Как правильно поступить, если я хочу иметь выбор, из какого источника получать данные (сети или локальной базы данных), мне нужно в одном репозитории сделать два метода вроде "getItemsFromDb" и "getItemsFromApiSerice"? или создать два разных репозитория, один для сети, другой для локальной базы данных?
  • Вопрос задан
  • 396 просмотров
Решения вопроса 1
First_Spectr
@First_Spectr
Студент
Два репозитория точно бред, репозиторий должен увеличивать уровень абстракции, а не уменьшать. Суть репозитория в т. ч. логике должно быть пофиг (относительно) откуда возьмутся данные.
Я делаю так:
В репозитории создаётся один метод getItems(boolean needFreshData, MyCallback mCallback),
Если needFreshData true берём данные с api, иначе репозиторий должен сам решить.
Во втором случае я обычно делаю так: пытаюсь достать из бд, если там ничего нет - запрос на сервер. Ещё можно учесть такие состояния как отсутствие доступа к api и прочие мелочи.
Также, обращаю внимание, что вызов асинхронный и результаты придут в колбеке.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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