Современное состояние архитектуры MVC? - PullRequest
7 голосов
/ 24 июня 2010

Похоже, что существует множество возможных конфигураций / архитектур MVC (MVC, MVVM, MVP, HMVC, PAC, просмотр документов ...). Есть ли в настоящее время принятая «лучшая» или современная архитектура MVC? Что такое новейшее мышление? Или все это бесплатно для всех и / или просто привязано к какой-либо платформе, на которой вы разрабатываете (например, MVVM для WPF)?

(В частности, меня интересует MVC, применяемый в приложениях для настольных ПК / Rich-Client.)

Ответы [ 2 ]

6 голосов
/ 24 июня 2010

Нет. Вы не получите никакого соглашения о том, что является "в настоящее время принятой" лучшей архитектурой.

Это, конечно, не MVC или MVP. Эти архитектуры возникли в конце 70-х и начале 90-х соответственно. MVP является улучшением MVC, но за двадцать лет, прошедших с момента его создания, стало ясно, что он страдает многими, многими недостатками. Вот почему так много новых конкурирующих архитектур.

Понятия «модель» и «представление» общеприняты и, по-видимому, являются общими для всех современных архитектурных моделей. Реальный вопрос в том, как лучше связать их вместе. Вам нужно что-то еще кроме модели и вида, но что?

Большинство новых архитектур стремятся сделать это, имея ссылку на представление или привязку непосредственно к модели и «что-то еще», используя привязку данных, выражения или аналогичные механизмы. Таким образом, все, что в модели может быть напрямую связано с представлением, вообще не нуждается в «чем-то еще».

Мой личный фаворит - MVVM. Мне нравится тот факт, что «модель представления» концептуально является просто «моделью» со всеми аспектами любой другой модели, за исключением того, что она (обычно) никогда не записывается на диск. На самом деле, если это не смущает, «MVVM» можно переименовать в «MV», поскольку он в значительной степени обходится без необходимости чего-либо еще, кроме представлений и моделей. MVVM может использоваться не только с WPF, но и с любой средой представления, которая имеет расширенные возможности привязки данных. К сожалению, это исключает GWT и какао. Мне также нравится MVVM, потому что он имеет тенденцию полностью исключать избыточный или повторяющийся код.

MVVM - не единственный продвинутый игрок в городе. Аспектно-ориентированные подходы и командные архитектуры, построенные на традиционных моделях и представлениях, также имеют схожие цели.

Суть в том, что это все еще активно исследуемая область , и в настоящее время не было достигнуто консенсуса. MVVM - самая популярная из новых архитектур, но не единственная. Жюри все еще отсутствует.

Примечание: Чтобы получить представление о том, как более новые архитектуры улучшены по сравнению с MVC и MVP, посмотрите это сравнение Cocoa и WPF , начиная с заголовка "Повторяющийся код" и переходя к концу раздела «Командная архитектура».

3 голосов
/ 24 июня 2010

Новейшее архитектурное исследование, проводимое в эти дни для толстых клиентов, проводится Google.с архитектурой MVP.

Ознакомьтесь со статьями GWT по MVP
http://code.google.com/webtoolkit/articles/mvp-architecture.html
http://code.google.com/webtoolkit/articles/mvp-architecture-2.html

Также посмотрите на это http://groups.google.com/group/Google-Web-Toolkit/browse_thread/thread/8b0ae5eaf84d8bc2?hide_quotes=no

Также посмотрите это видео на YouTube http://www.youtube.com/watch?v=PDuhR18-EdM

Что касается ответа на ваш вопрос, за исключением того, что говорят, что MVC отчасти устарел, я думаю, что он очень субъективен в том, какой путь выбрать.Это не зависит от платформы, за исключением того, что выбранная вами платформа может определять архитектуру: (

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...