Шаблон репозитория Android - PullRequest
0 голосов
/ 28 мая 2018

У меня есть пара вопросов о шаблоне репозитория:

  1. Если я использую только автономную базу данных, например, Room with LiveData, есть ли какое-либо использование шаблона репозитория?

  2. Если мое приложение сейчас находится в автономном режиме, но будет подключено к удаленной базе данных в будущем, если я реализую шаблон репозитория, или это не будет проблемой, сделать это позже?

Ответы [ 2 ]

0 голосов
/ 29 мая 2018

Начнем с того, что шаблон репозитория не имеет ничего общего с технологией или языком программирования.

Шаблон репозитория полезен для отделения проблем постоянства от остальной части приложения.Это также помогает улучшить возможности тестирования, потому что теперь вы можете легко смоделировать Репозиторий и протестировать оставшуюся часть кода без подключения к постоянному слою.

Если я использую только автономную базу данных, например, Room with LiveData isЕсть ли какое-либо использование шаблона репозитория?

Я не знаю об этих технологиях.Но, как сказано выше, целью хранилища является невежество постоянства.Независимо от того, какое у вас хранилище данных (в базе данных памяти, RDBMS, Excel / CSS, Web-сервисе, XML, JSON и т. Д.), Шаблон репозитория помогает абстрагировать его.Так что да, шаблон репозитория здесь полезен.

Если мое приложение сейчас не в сети, но будет подключено к удаленной базе данных в будущем, если я реализую шаблон репозитория, или это не будет проблемой длясделать это позже?

На самом деле, я настоятельно рекомендую реализовать репозиторий здесь.Поскольку постоянство игнорируется, оставшаяся часть приложения может быть легко спроектирована на основе предположения, что данные будут доступны / сохранены. SOMEHOW (локально в случае автономного режима и сервер в случае будущего), даже не подозревая, что он отключен или подключен к сети.Таким образом, когда в будущем вы переходите от локального хранилища к удаленному хранилищу, ваше приложение никак не влияет, поскольку оно построено на интерфейсах репозитория, и эти интерфейсы не изменяются.Постоянная забота полностью решена в настоящее время хранилищем.

Мой другой ответ может быть полезным.

0 голосов
/ 29 мая 2018

IMO

  1. Да, полезно абстрагироваться от способа хранения данных, чтобы вы могли гибко реагировать на изменения, как известные, так и неизвестные.

    • Тестирование.Mocks
    • Альтернативная сборка, например Android Instant, которая всегда будет извлекать данные из сети?
    • Другие библиотеки БД.Например, предположим, что вы хотите, чтобы ваша функция использовала кроссплатформенную платформу Kotlin Native, и требуется альтернативная библиотека БД
  2. Требуется рефакторинг.Я думаю, что это зависит от деталей вашего приложения и его размера.

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