Что означает MVW?
Вот описание содержания страницы AngularJS:
AngularJS - это то, чем был бы HTML, если бы он был разработан для создания веб-приложений. Декларативные шаблоны с привязкой данных, MVW, MVVM, MVC, внедрением зависимостей и великолепной историей тестируемости - все это реализовано с помощью чистого клиентского JavaScript!
Так что же означает MVW? (Учитывая ссору MVC, MVVW, MVP и т. Д., Я бы предположил "что угодно", Model-View-Wh менно =P)
5 ответов
Это действительно означает то, что работает для вас
MVC против MVVM против MVP. Что за спорная тема, о которой многие разработчики могут часами спорить и спорить.
В течение нескольких лет AngularJS был ближе к MVC (или, скорее, к одному из его вариантов на стороне клиента), но со временем и благодаря множеству рефакторингов и улучшений API теперь он ближе к MVVM - объект $scope можно рассматривать как ViewModel, который является быть украшенным функцией, которую мы называем контроллером.
Возможность классифицировать фреймворк и поместить его в одну из групп MV* имеет некоторые преимущества. Он может помочь разработчикам освоиться с его API-интерфейсом, упрощая создание ментальной модели, представляющей приложение, которое создается с помощью фреймворка. Это также может помочь установить терминологию, которая используется разработчиками.
Тем не менее, я бы предпочел, чтобы разработчики создавали офигенные приложения, которые были бы хорошо спроектированы и следили за разделением интересов, чем смотрели бы, как они тратят время на споры о бессмысленности MV*. По этой причине я объявляю AngularJS фреймворком MVW - Model-View-Wh независимо от модели. Где Что бы ни означало "все, что работает для вас".
Angular дает вам большую гибкость, чтобы красиво отделить логику представления от бизнес-логики и состояния представления. Пожалуйста, используйте его, чтобы повысить производительность и удобство обслуживания приложений, а не горячие дискуссии о вещах, которые в конце концов не так важны.
Для полноты, вот упомянутые сокращения:
MVC - модель-вид-контроллер
MVP - Model-View-Presenter
MVVM - модель-вид-вид-модель
MVW / MV* - модель-вид-что угодно
И еще немного:
HMVC - иерархическая модель-представление-контроллер
MMV - Multiuse Model View
MVA - модель-вид-адаптер
Сказав это, я бы предпочел, чтобы разработчики создавали офигенные приложения, которые были бы хорошо спроектированы и следили за разделением интересов, чем смотрели бы, как они тратят время на споры о бессмыслице MV*. По этой причине я объявляю AngularJS фреймворком MVW - Model-View-Wh независимо от модели. Где Что бы ни означало "все, что работает для вас".
Кредиты: AngularJS Post - Игорь Минар
AngularJS - супергероический JavaScript MVW Framework
Я чувствую, что MWV (Model View Независимо от того, что) или MV* - более гибкий термин, чтобы описать некоторую уникальность Angularjs по моему мнению. Это помогло мне понять, что это нечто большее, чем JavaScript-фреймворк MVC (Model View Controller), но он по-прежнему использует MVC, поскольку у него есть Model View и Controller.
Его также можно рассматривать как шаблон MVP (Model View Presenter). Я думаю о Presenter как о бизнес-логике пользовательского интерфейса в Angularjs для View. Например, используя фильтры, которые могут форматировать данные для отображения. Это не бизнес-логика, а логика отображения, и она напоминает мне шаблон MVP, который я использовал в GWT.
Кроме того, это также может быть MVVM (Model View View Model), часть View Model, являющаяся двусторонней связью между ними. И, наконец, это MVW, поскольку у него есть другие шаблоны, которые вы можете использовать, а также упомянутые @Steve Chambers.
Я согласен с другими ответами о том, что педантизм в отношении этих терминов может быть вредным, поскольку смысл состоит в том, чтобы понять концепции из терминов, но при этом полное понимание этих терминов помогает при разработке кода приложения, зная, что идет куда и зачем.