@Mikhail_123

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

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

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

Войти через центр авторизации
Похожие вопросы
G1 Software Нур-Султан (Астана)
До 140 000 ₽
КАУС Москва
от 180 000 до 200 000 ₽
24 окт. 2020, в 13:21
12000 руб./за проект
24 окт. 2020, в 12:03
1 руб./за проект
24 окт. 2020, в 11:52
90000 руб./за проект