Это прекрасно. Models
- это то, на что они похожи: модели данных. Они должны быть фиктивными объектами, которые содержат данные, которые остальная часть приложения может использовать по мере необходимости.
ViewModels
- это модели, которые отображают вид. Например, предположим, что у вас есть LoginViewModel
и ManageUsersViewModel
. Обе модели ViewModel будут работать с объектом данных UserModel
, однако они совершенно разные модели ViewModel для совершенно разных вещей.
В большинстве случаев я бы оставил ответственность за загрузку Models
до ViewModel
. Например, вы обычно не загружаете список пользователей до входа пользователя в систему, поэтому у вас будет доступен объект User. Insetad, ваш LoginViewModel
будет делать свой собственный вызов базы данных, чтобы получить модель User входа пользователя, в то время как ManagerUsersViewModel
будет делать свой собственный вызов базы данных, чтобы получить список пользователей, которые могут быть изменены.