Я изучаю шаблон MVVM-Coordinator, и один из них - вопросительный знак. ViewModel несет ответственность за получение и форматирование данных, которые View может взять и просто показать пользователю. Координатор управляет навигацией. Какая часть должна отвечать за события после/обновления, например. выполнение методов входа / регистрации API, выполнение запросов комментариев / лайков? Это также ответственность ViewModel или координатора?
В этой статье говорится, что координатор должен нести ответственность за навигацию и изменение модели: http://khanlou.com/2015/10/координаторы-редукс/
Но я нахожу примеры, когда ViewModel также выполняет мутацию.
Ну, я думаю, это немного субъективно, но я бы определенно сказал «Модель просмотра». Координатор используется для навигации, а модели — это просто объекты. И, как вы знаете, модель представления — это то, к чему принадлежит бизнес-логика.
В моем случае у меня есть выделенный уровень абстракции (служба), где я реализую каждую сетевую службу и запрос. Затем моя модель представления просто запрашивает данные и отправляет их в ViewController. Я делаю это, потому что в приложении с интенсивным использованием сети ваши модели представления будут иметь слишком много кода, а также потому, что просто представьте, что у вас есть одна модель представления для каждого контроллера представления, а затем вам нужно сделать один и тот же запрос в двух разных сценариях. Будете ли вы дважды создавать экземпляр одной и той же ViewModel для двух разных контроллеров представления?
Все немного субъективно, но по моему опыту, это лучший подход.
Надеюсь, это поможет.