WPF: MVP против MVVM - PullRequest
       6

WPF: MVP против MVVM

16 голосов
/ 19 декабря 2010

В чем разница между MVP и MVVM? Почему мы используем MVP, хотя у нас есть три уровня: бизнес, доступ к данным и презентация? Есть ли какая-либо конкретная причина для разделения уровня представления на MVP?

1 Ответ

16 голосов
/ 19 декабря 2010

MVP и MVVM являются производными от MVC. MVC - это шаблон, который отделяет представление пользователя и взаимодействие от внутреннего представления.

Для этого требуется три уровня, поскольку привязка взаимодействия пользователя / презентации непосредственно к внутреннему представлению приведет к тому, что оба изгиба будут соответствовать друг другу. В своем приложении вы описали эти уровни как презентацию, бизнес-уровень и уровень доступа к данным. Только с этими очень свободными описаниями вы могли бы потенциально описать любое из производных MVC или сам исходный шаблон MVC.

Ключевыми различиями между каждым из производных являются зависимости, которые каждый слой принимает от других слоев, и то, насколько тесно они связаны друг с другом. В этой статье есть некоторые подробности о различиях, хотя, конечно, это не следует считать авторитетным:

http://nirajrules.wordpress.com/2009/07/18/mvc-vs-mvp-vs-mvvm/

"... MVVM привлекателен для платформ, которые поддерживают двунаправленное связывание с меньшими усилиями. Также небольшим компромиссом является ViewModel в отличие от Presenter, который может работать самостоятельно (Presenter обычно требует интерфейс View)."

...