Що означає MVW?


351

Ось опис вмісту сторінки AngularJS:

AngularJS - це був би HTML, якби він був розроблений для створення веб-додатків. Декларативні шаблони з прив'язкою даних, MVW, MVVM, MVC, залежністю від ін'єкцій та великою історією доказів, всі реалізовані з чистого JavaScript на стороні клієнта!

Отже, що означає MVW? (Беручи до уваги суперечки MVC, MVVW, MVP тощо), я б здогадався "що завгодно", Model-View-Anywhere = P)


Я думаю, що ти маєш рацію з Model-View-Anywhere! code.google.com/p/dark-matter-data/wiki/MVWOverview
Іван

Відповіді:


447

Це дійсно стоїть на будь-якому, як і в тому, що працює для вас

MVC проти MVVM проти MVP. Яка суперечлива тема, за якою багато розробників можуть витрачати години і години на дискусії та суперечки.

Кілька років + AngularJS був ближчим до MVC (а точніше, до одного з його варіантів на стороні клієнта), але з часом, завдяки багатьом переробникам та покращенню api, тепер він наближається до MVVM - об’єктом $ range можна вважати ViewModel, тобто бути прикрашений функцією, яку ми називаємо контролером.

Бути в змозі класифікувати рамку і помістити її в одне з відра MV * має деякі переваги. Це може допомогти розробникам отримати більше комфорту з його apis, полегшивши створення ментальної моделі, яка представляє додаток, який будується з рамкою. Це також може допомогти встановити термінологію, яка використовується розробниками.

Сказавши, я б швидше бачив, як розробники створюють добре продумані програми та керуються розділенням проблем, ніж бачать, як вони витрачають час, сперечаючись про MV * дурниці. І з цієї причини я заявляю, що AngularJS є рамкою MVW - Model-View-Anywhere. Де що б там не означало, "що для вас працює" .

Кутовий надає вам велику гнучкість для чіткого відділення логіки презентації від логіки бізнесу та стану презентації. Будь ласка, використовуйте це для підвищення продуктивності та ремонту додатків, а не бурхливих дискусій про речі, які в кінці дня не мають великого значення.


8
@ FrançoisWahl: Я сказав те саме, що не п’ять секунд перед тим, як прочитати ваш коментар. MV *, мабуть, було б більш очевидним для переважної більшості розробників програмного забезпечення, які, ймовірно, вже знайомі з всюдисущою умовною схемою '*'.
Девід Фрай

2
Ви не можете Google MV *. Також ... "Що б там не було" передає розчарування, яке багато людей відчувають, обговорюючи семантику MVx
Клінтм

143

MVW розшифровується як Model-View-Anywhere .

Для повноти тут наведені всі акроніми:

MVC - Model-View-Controller

MVP - Model-View-Presenter

MVVM - Model-View-ViewModel

MVW / MV * / MVx - перегляд моделі-що завгодно

І ще кілька:

HMVC - Ієрархічна модель-перегляд-контролер

MMV - багатокористувацький перегляд моделі

MVA - адаптер для перегляду моделі


22

Сказавши, я б швидше бачив, як розробники створюють добре продумані програми та керуються розділенням проблем, ніж бачать, як вони витрачають час, сперечаючись про MV * дурниці. І з цієї причини я заявляю, що AngularJS є рамкою MVW - Model-View-Anywhere. Де що б там не означало, "що для вас працює".

Кредити: AngularJS Post - Ігор Мінар



1

Я відчуваю, що MWV (Model View What Anybody) або MV * є більш гнучким терміном для опису деякої унікальності Angularjs на мій погляд. Це допомогло мені зрозуміти, що це більше ніж рамка JavaScript MVC (Model View Controller), але вона все ще використовує MVC, оскільки має Model View та Controller.

Його також можна розглядати як модель MVP (Model View Presenter). Я думаю, що презентатор є бізнес-логікою інтерфейсу користувача в Angularjs для View. Наприклад, використовуючи фільтри, які можуть форматувати дані для відображення. Це не бізнес-логіка, а логіка відображення, і це нагадує мені шаблон MVP, який я використовував у GWT.

Крім того, це також може бути MVVM (Model View View Model) частина View Model, яка є двосторонньою зв'язкою між ними. Нарешті, це MVW, оскільки він має інші зразки, які можна використовувати, а також згадує @Steve Chambers.

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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.