Отличие MVVM от MVP?

Првиет ребята :-) У меня может быть банальный вопрос но очень важный для меня :-)
В чем отличие "MVVM" от "MVP" ?

Как понимаю я (MVVM):
- Model [данные]
- View [обрабатывает визуальную часть]
- ViewModel [обрабатывает логику для view используя model (может иметь доп класc для обработки data binding)]

Как понимаю я (MVP):
- Model [data binding]
- View [обрабатывает визуальную часть]
- Presenter [обрабатывает логику для view используя model]
  • Вопрос задан
  • 2943 просмотра
Пригласить эксперта
Ответы на вопрос 1
mmarashan
@mmarashan
Fullstack/Android/IoT developer
Как я это структурировал для себя.
MVC: доступ к данным (Model) есть у View и у контроллера. То есть View может перерисовываться самостоятельно лишь на основании изменения данных в Model или взаимодействия пользователя с View (нажатие на экран), или сама изменить данные в Model; и только сообщить контроллеру об этом. Controller может изменять состояние View на основании своих источников данных (напр. внешние запросы, нажатие на кнопку) и тоже может менять Model.
MVP: Presenter является посредником между View и моделью. View и модель меняются данными через установленное API. Отображение во View зависит только от данных, которые установил Presenter.
MVVM: ViewModel также является посредником между View и моделью. Но ViewModel не может напрямую воздействовать на View, а лишь является источником данных и имеет возможность через функции вызова передавать актуальные данные. То, что отображать, определяется на уровне View.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы