Что означает MVW?


351

Вот описание содержания страницы AngularJS:

AngularJS - это то, чем был бы HTML, если бы он был разработан для создания веб-приложений. Декларативные шаблоны с привязкой данных, MVW, MVVM, MVC, внедрением зависимостей и великолепной историей тестируемости - все это реализовано с помощью чистого клиентского JavaScript!

Так что же означает MVW? (Учитывая ссору MVC, MVVW, MVP и т. Д., Я бы предположил «что угодно», Model-View-Whменно = P)


Я думаю, что вы правы с Model-View-Wh независимо! code.google.com/p/dark-matter-data/wiki/MVWOverview
Джон

Ответы:


447

Это действительно означает то, что работает для вас

MVC против MVVM против MVP. Что за спорная тема, о которой многие разработчики могут часами спорить и спорить.

В течение нескольких лет AngularJS был ближе к MVC (или, скорее, к одному из его вариантов на стороне клиента), но со временем и благодаря множеству рефакторингов и улучшений API теперь он ближе к MVVM - объект $ scope можно рассматривать как ViewModel, который является быть украшенным функцией, которую мы называем контроллером.

Возможность классифицировать фреймворк и поместить его в одну из групп MV * имеет некоторые преимущества. Он может помочь разработчикам освоиться с его API-интерфейсом, упрощая создание ментальной модели, представляющей приложение, которое создается с помощью фреймворка. Это также может помочь установить терминологию, которая используется разработчиками.

Сказав это, я бы предпочел, чтобы разработчики создавали офигенные приложения, которые были бы хорошо спроектированы и следили за разделением интересов, чем видел, как они тратят время на споры о бессмыслице MV *. По этой причине я объявляю AngularJS фреймворком MVW - Model-View-Wh независимо от модели. Где Что бы ни означало «все, что работает для вас» .

Angular дает вам большую гибкость, чтобы красиво отделить логику представления от бизнес-логики и состояния представления. Пожалуйста, используйте его, чтобы повысить производительность и удобство обслуживания приложений, а не горячие дискуссии о вещах, которые в конце концов не так важны.


8
@ FrancoisWahl: я сказал то же самое про себя не за пять секунд до прочтения вашего комментария. MV *, вероятно, было бы более очевидным для подавляющего большинства разработчиков программного обеспечения, которые, вероятно, уже знакомы с вездесущим условным знаком '*'.
Дэвид Фрай

2
Вы не можете Google MV *. Кроме того, «все» передает разочарование, которое испытывают многие при обсуждении семантики MVx
Клинт

143

MVW расшифровывается как модель-вид-что угодно .

Для полноты, вот все упомянутые сокращения:

MVC - модель-вид-контроллер

MVP - Model-View-Presenter

MVVM - модель-вид-вид-модель

MVW / MV * / MVx - модель-вид-что угодно

И еще немного:

HMVC - иерархическая модель-представление-контроллер

MMV - Multiuse Model View

MVA - модель-вид-адаптер


22

Сказав это, я бы предпочел, чтобы разработчики создавали офигенные приложения, которые были бы хорошо спроектированы и следили за разделением интересов, чем видел, как они тратят время на споры о бессмыслице MV *. По этой причине я объявляю AngularJS фреймворком MVW - Model-View-Wh независимо от модели. Где Что бы ни означало «все, что работает для вас».

Кредиты: AngularJS Post - Игорь Минар



1

Я чувствую, что MWV (Model View Независимо от того, что) или MV * - более гибкий термин, чтобы описать некоторую уникальность Angularjs по моему мнению. Это помогло мне понять, что это нечто большее, чем JavaScript-фреймворк MVC (Model View Controller), но он все еще использует MVC, поскольку у него есть Model View и Controller.

Его также можно рассматривать как шаблон MVP (Model View Presenter). Я думаю о Presenter как о бизнес-логике пользовательского интерфейса в Angularjs для View. Например, используя фильтры, которые могут форматировать данные для отображения. Это не бизнес-логика, а логика отображения, и она напоминает мне шаблон MVP, который я использовал в GWT.

Кроме того, это также может быть MVVM (модель представления модели), часть модели представления является двусторонней связью между ними. И, наконец, это MVW, поскольку у него есть другие шаблоны, которые вы можете использовать, а также упомянутые @Steve Chambers.

Я согласен с другими ответами о том, что педантизм в отношении этих терминов может быть вредным, поскольку смысл состоит в том, чтобы понять концепции из терминов, но при этом полное понимание терминов помогает при разработке кода приложения, зная, что идет куда и зачем.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.