создаёшь классы которые возвращают данные
LocalStorage
LocalStorageInterface
RemoteStorage
RemoteStorageInterface
У тебя есть
GetProductRepostiory
У него 2 метода публичных
fun getProductLocal()
fun getProductRemote()
И usecase
GetPeoductUseCase
И в этом классе юзкейс ты реализуешь логику получения товара либо забираешь с удаленной бд (repository.getRemoteStorage()) либо с локальной (repository.getLocalStorage())
Итого репозиторий не содержит логики, и мы имеем возможность подменить одну субд на другую.
Нельзя ответить, верный это подход или нет, в отрыве от условий вашей задачи. Когда-то можно сделать так, когда-то не имеет смысла в репозитории иметь два разных метода
Понял спасибо, в данном контексте тут так задумано) просто закреплял тему с клинкодом.
чаще всего от репозитория нужно, чтобы он сам внутри себя инкапсулировал логику, когда нужно обращаться к удалённому апи, а когда достаточно залезть в локальное хранилище. так можно простым вызовом одного метода репозитория заменить копипаст всей этой логики по проекту но, как уже было сказано, у вас могут быть особенные требования, и под них уже нужно смотреть отдельно - есть ли смысл в специальных методах репозитория
Обсуждают сегодня