Модель в MVVM - это просто класс pojo? - PullRequest
0 голосов
/ 08 ноября 2019

In MVVM Architechture M обозначает Модель , которая содержит данные. по многим ссылкам он выглядит так же, как POJO классы. Я прав ? если да, то вся архитектура жизненного цикла андроида зависит / состоит из классов POJO, так как в MVVM мы можем использовать привязку данных, которая также использует класс POJO или класс DATA. В интеграции с комнатой Android он также использует POJO для создания таблицы, в архитектуре живых моделей большинство людей используют классы POJO.

Насколько мне известно, POJO не подходит, если ваше приложение имеет большую интеграцию Api, так кака также, если у внутреннего сервера нет SQL, что происходит в моем случае, так как Api не является консистентностью, а данные быстро меняются и ежедневно добавляются новые параметры.

Пожалуйста, кратко опишите мне Преимущества и недостатки использованияКласс POJO и способ использования POJO с непоследовательной структурой API.

В настоящее время я использую GSON для десериализации данных вручную.

1 Ответ

0 голосов
/ 08 ноября 2019

В общем, да. Ваши классы моделей - простые pojos.

Ваш пользовательский интерфейс (ваш View) может получать свои данные из ViewModel. ViewModel предоставляет эти данные с данными из моделей.

Но вы все равно можете динамически обновлять модель в ViewModel. В Руководстве по архитектуре приложения вы можете найти диаграмму, которая показывает общий шаблон. Ваша ViewModel получает свои модели из класса Repository.

Класс Repository обрабатывает вызовы базы данных, веб-службы или любого другого интерфейса для предоставления обновленных данных в ViewModel. ViewModel не заботится о том, откуда берутся данные.

Это имеет преимущества при модульном тестировании, поскольку вам нужно переопределить интерфейс репозитория, только если вы хотите предоставить ложные данные для вашей ViewModel.

Android MVVM architecture diagram. Source: Google, https://developer.android.com/jetpack/docs/guide Источник: Google, https://developer.android.com/jetpack/docs/guide

...