Вы уже ответили на свой вопрос.С другой стороны, ViewModel сообщает View (действия и фрагмент), ЧТО должно быть изменено, и View просто обрабатывает, КАК это должно быть обновлено.
Однако большая часть бизнес-логики, если мы хотим бытьНитпки, все равно должен оставаться в модели.ViewModel содержит только те данные LiveData, которые необходимы представлению.Некоторые причины этого заключаются в том, что вы не хотите, чтобы ваша модель зависела от архитектуры Android.Но также следовать принципу единой цели.Таким образом, вы избегаете превращения ViewModel в объект God, который обрабатывает все.Вместо этого вы разрешаете ему только форматировать данные, передавать команды, предоставлять фабричные методы для привязки к viewModel и подписки / получения соответствующих изменений из модели.
Короче говоря: View передает пользовательский ввод в ViewModelкто выдает команды на модели.Затем ViewModel форматирует изменения из модели и публикует изменения, используя LiveData, в представление.Наконец, представление обновляет компоненты, которые может видеть пользователь.
Посмотрите здесь пример того, как обновляется пользовательский интерфейс.https://developer.android.com/topic/libraries/architecture/viewmodel
Подробнее об этом здесь: https://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93viewmodel