Ответ 1
Разница заключается в том, как данные из уровня модели заканчиваются в экземплярах представления.
- в классическом MVC (а также в Model2 MVC) представление является активной структурой. Он запрашивает информацию из уровня модели. Контроллер только изменяет состояние слоя модели и просматривает.
- в MVP представление является пассивным. Вместо этого запрашивающий запрос запрашивает информацию из слоя модели и передает ему представление. Вы можете более подробно ознакомиться с шаблоном MVP здесь.
- в MVVM похож на MVP, но viewmodel должен манипулировать информацией, прежде чем передавать его для просмотра.
Разница между MVP и MVVM заключается в процессе разработки. Вы должны использовать шаблон MVP при создании слоя представления для известного уровня модели.
Но вам придется использовать MVVM, если у вас есть уже существующий (или по какой-то причине - un changeable) пользовательский интерфейс и существующий (или неизменный) уровень модели. И вы должны заставить их работать вместе. То, что вступает в игру viewmodel.