Шаблон хранилища с одним интерфейсом в Android - PullRequest
0 голосов
/ 29 мая 2019

Изучив пару постов в блоге на эту тему, я запутался, так как были разные реализации разными разработчиками, но все они использовали единый интерфейс для репозитория .

Предположим, мыиметь следующий интерфейс для репозитория

interface Repository<T> {
    fun get(): List<T>
    fun save(items: List<T>)
}

. Для конкретной реализации этого репозитория с T = Users, Repository.get() загружает некоторые данные с сервера и кэширует их.

Для объекта другого типа, скажем, Bundles Мне нужны не только эти методы, но и некоторые дополнительные методы, например, запрос локальной базы данных для определенного столбца .

В таком случае, я не могу понять, нужно ли мне создавать отдельный интерфейс или добавлять методы к существующему единому интерфейсу , и в этом случае что мне делать с реализацией новогометоды в других репозиториях, которым эти методы не нужны?Он должен иметь одинаковый интерфейс для всех репозиториев.Лично я думаю, что можно создавать несколько интерфейсов для разных репозиториев до тех пор, пока я хорошо их абстрагирую.

1 Ответ

1 голос
/ 29 мая 2019

мне нужно создать отдельный интерфейс или добавить методы к существующему единому интерфейсу

Вы можете делать все что угодно. Android ничего не знает о репозиториях и не накладывает никаких ограничений.

В своей работе я не создаю общий интерфейс (например, тот, который вы показываете). Я не могу вспомнить проект, над которым я работал, где разработчики создали общий интерфейс репозитория. Я уверен, что некоторые люди создают такой интерфейс, но ОС не требует для него одного.

Лично я думаю, что можно создавать несколько интерфейсов для разных репозиториев, если я их абстрагирую.

Вы можете сделать это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...