Ответ 1
MVP и MVVM являются производными от MVC. MVC - это шаблон, который отделяет представление пользователя и взаимодействие от внутреннего представления.
Для этого требуется три уровня, так как привязка взаимодействия пользователя/презентации непосредственно к внутреннему представлению приведет к тому, что оба будут согнуты, чтобы соответствовать друг другу. В вашем приложении вы описали эти слои как "Презентация", "Бизнес-уровень" и "Уровень доступа к данным". Имея только те очень разрозненные описания, вы потенциально можете описывать любые производные MVC или оригинальный шаблон MVC.
Ключевыми отличиями между каждой производной являются зависимости, которые каждый уровень берет на других уровнях, и насколько они тесно связаны друг с другом. В этой статье есть некоторые подробности о различиях, хотя, конечно, это не должно считаться авторитетным:
http://nirajrules.wordpress.com/2009/07/18/mvc-vs-mvp-vs-mvvm/
"... MVVM привлекателен для платформ, поддерживающих двунаправленную привязку с меньшими усилиями. Также небольшим компромиссом является ViewModel, в отличие от Presenter, который может стоять сам по себе (для Presenter обычно требуется интерфейс Views).