Я хочу знать, правильно ли я понимаю MVVM. Допустим, я хочу разработать приложение для резервирования мест на курорте:
Представления будут содержать пользовательский интерфейс для информации о бронировании, поэтому чтобы пользователь мог искать бронирование, видеть номера и все, что угодно
ViewModel будет управлять данными из представлений, такими как пользовательский имя, данные бронирования и еще много чего, под этим я подразумеваю чтение пользователя данные из текстовых полей и так далее
Модель будет реализовывать класс пользователя и резервирования
Верны ли мои предположения?
Да. Представления — это все, что видит ваш пользователь и с чем может взаимодействовать, и они должны быть как можно более «тупыми», то есть на этом уровне не должно быть никакой бизнес-логики.
Модели представления должны обрабатывать всю загрузку/обработку данных и должны передавать эти данные представлениям. Поэтому, если вы хотите получить данные из базы данных, вы не вызываете их из представления, а используете модели представления. Также, когда вы пишете тесты, вы должны тестировать модели представления. А модели — это всего лишь представление данных, например User, Room, Hotel.