Выбор ответа Middle MVC, MVP, MVVM, MVI, VIPER обновлено

Чем MVP отличается от MVVM

Вопрос

Чем MVP отличается от MVVM?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: В MVP презентер держит ссылку на интерфейс view и вызывает её методы; в MVVM view model публикует состояние. В MVP связь двусторонняя: презентер получает события от view и командует ей через протокол (view.showLoading()).

Варианты ответа

  1. В MVP нет модели: презентер сам ходит в сеть и хранит данные экрана в своих полях
  2. В MVP презентер держит ссылку на интерфейс view и вызывает её методы; в MVVM view model публикует состояниеправильный ответ
  3. MVP работает только на Android с Activity, а MVVM только на iOS со SwiftUI и Combine
  4. В MVVM view model обязана наследоваться от системного класса ViewModel платформы, а в MVP презентер может быть любым

Разбор

В MVP связь двусторонняя: презентер получает события от view и командует ей через протокол (view.showLoading()). В MVVM направление одно: view наблюдает за состоянием view model. Оба паттерна платформенно-независимы и имеют модель. На Android есть класс ViewModel из Jetpack, но паттерн MVVM от него не зависит.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.