Подтвердить что ты не робот

MVC/MVP/MVVM Что такое Heck?

Недавно я работал над проектом .Net WPF для создания системы розничной торговли, где я впервые использовал шаблон MVP. Мне потребовалось немного времени, чтобы обернуть голову вокруг смены подхода, но как только я это сделал, я подумал, что концепция качалась!

Мой вопрос заключается в следующем: что такое различие между MVC, MVP и MVVM? Если существует четкое различие, существуют ли рекомендации относительно того, когда вы должны использовать один шаблон над другим?

Если кто-нибудь может предложить руководство по этому поводу или указать на статью, которая объясняет различия, я бы очень ее оценил.

4b9b3361

Ответ 2

Трудно найти различия между шаблонами, взглянув на конкретный шаблон, реализованный в определенной структуре. Эта статья msdn WPF MVVM ссылается на оригинальные статьи Мартина Фаулера, которые объясняют шаблон как общий подход:

Еще в 2004 году Мартин Фаулер опубликовал статью о шаблоне с именем Presentation Model (PM) [...], рассматривая MVVM как специализацию более общего шаблона PM, специально разработанные для платформ WPF и Silverlight.

Чтобы понять разные шаблоны, полезно взглянуть на описания Мартина Фаулера разных подходов. Его Пассивный вид - это подход MVP. Его шаблон Supervising Controller - это подход MVC. Шаблон Presentation Model - это подход MVVM. В этой старой статье рассматривается эволюция таких шаблонов.

Это может также помочь взглянуть на реализации на разных языках. Статья Внедрение управляемых событиями графических интерфейсов GUI с использованием инфраструктуры Java AJAX ZK контрастирует с тремя шаблонами Мартина Фаулера, упомянутыми выше, в современной Java-среде. Несмотря на то, что его другой язык и другая структура из WPF могут помочь увидеть шаблон, а не реализацию шаблона, чтобы увидеть его на другом языке.