Изучив пару постов в блоге на эту тему, я запутался, так как были разные реализации разными разработчиками, но все они использовали единый интерфейс для репозитория .
Предположим, мыиметь следующий интерфейс для репозитория
interface Repository<T> {
fun get(): List<T>
fun save(items: List<T>)
}
. Для конкретной реализации этого репозитория с T = Users
, Repository.get()
загружает некоторые данные с сервера и кэширует их.
Для объекта другого типа, скажем, Bundles
Мне нужны не только эти методы, но и некоторые дополнительные методы, например, запрос локальной базы данных для определенного столбца .
В таком случае, я не могу понять, нужно ли мне создавать отдельный интерфейс или добавлять методы к существующему единому интерфейсу , и в этом случае что мне делать с реализацией новогометоды в других репозиториях, которым эти методы не нужны?Он должен иметь одинаковый интерфейс для всех репозиториев.Лично я думаю, что можно создавать несколько интерфейсов для разных репозиториев до тех пор, пока я хорошо их абстрагирую.