MVC срещу MVVM – Разлика между тях
Основни разлики между MVC и MVVM
- MVC рамката е архитектурен модел, който разделя приложението на три основни логически компонента модел, изглед и контролер. От друга страна, MVVM улеснява отделянето на разработката на графичния потребителски интерфейс с помощта на език за маркиране или GUI код
- В MVC контролерът е входната точка към приложението, докато в MVVM изгледът е входната точка към приложението.
- Компонентът на модела MVC може да бъде тестван отделно от потребителя, докато MVVM е лесен за отделно тестване на единици и кодът се управлява от събития.
- Архитектурата MVC установява връзка „един към много“ между контролера и изгледа, докато архитектурата на MVVM дефинира връзка „един към много“ между изгледа и ViewModel.
Какво е MVC?
- MVC рамка е архитектурен модел, който разделя приложенията на три основни логически компонента модел, изглед и контролер. Оттук и съкращението MVC. Пълната форма на MVC е контролер за изглед на модел.
В тази архитектура е изграден компонент, който да обработва специфични аспекти на разработка на приложение. MVC разделя бизнес логиката и презентационния слой един от друг. Този архитектурен модел се използва главно за настолни графични потребителски интерфейси (GUI).
Какво е MVVM?
MVVM архитектурата улеснява отделянето на разработката на графичния потребителски интерфейс с помощта на език за маркиране или GUI код. Пълната форма на MVVM е Model–View–ViewModel.
Моделът на изглед на MVVM е преобразувател на стойност, което означава, че моделът на изглед е отговорен за излагането на обектите с данни от модела по такъв начин, че обектите да се управляват и представят лесно.
MVC модел
Три важни MVC компонента са:
- Модел: Той включва всички данни и свързаната с тях логика.
- Изглед: Представяне на данни на потребителя или управление на потребителското взаимодействие.
- контролер: Интерфейс между компонентите Model и View.
Нека разгледаме подробно всеки от тези компоненти:
Модел
Компонентът на модела съхранява данни и свързаната логика. Той представлява данни, които се прехвърлят между компонентите на контролера или всяка друга свързана бизнес логика.
Например обект Controller ви помага да извлечете информацията за клиента от базата данни. Той манипулира данни и ги изпраща обратно в базата данни или ги използва за изобразяване на същите данни.
Гледка
Изгледът е тази част от приложението, която представлява представянето на данни. Изгледите се създават от данните, събрани от данните на модела. Изгледът изисква от модела да даде информация, така че да изпрати отново изхода на потребителя.
Изгледът също така представя данните от диаграми, диаграми и таблици. Например всеки клиентски изглед ще включва всички компоненти на потребителския интерфейс като текстови полета, падащи менюта и т.н.
Регулатор
Контролерът е тази част от приложението, която управлява взаимодействието на потребителя. Контролерът интерпретира въвеждането на мишката и клавиатурата от потребителя, като информира модела и изгледа да се променят според нуждите.
Контролерът изпраща команди към модела, за да актуализира състоянието му (напр. запазване на конкретен документ). Контролерът също така изпраща команди към своя свързан изглед, за да промени представянето на изгледа (Например превъртане на конкретен документ).
MVVM модел
Ето модел за MVVM:
MVVM архитектурата предлага двупосочно свързване на данни между изглед и изглед-модел. Той също така ви помага да автоматизирате разпространението на модификации вътре в View-Model към изгледа. Моделът на изглед използва шаблон на наблюдател, за да прави промени в модела на изглед.
Нека разгледаме един друг този компонент в детайли:
Модел
Моделът съхранява данни и свързаната логика. Той представлява данни, които се прехвърлят между компонентите на контролера или всяка друга свързана бизнес логика.
Например обект Controller ще извлече информацията за ученика от училищната база данни. Той манипулира данни и ги изпраща обратно към базата данни или ги използва за изобразяване на същите данни.
Гледка
Изгледът означава компоненти на потребителския интерфейс като HTML, CSS, jQuery и др
pattern view е отговорен за показване на данните, които са получени от контролера като резултат. Този изглед също се трансформира(т) в модел(и) в потребителски интерфейс (UI).
Вижте модел
Моделът на изгледа отговаря за представянето на функции, команди, методи, за да поддържа състоянието на изгледа. Освен това е отговорен за управлението на модела и активирането на събитията в изгледа.
Разлика между MVC и MVVM Archiтекстура
Ето важната разлика между MVVM и MVC
MVC (контролер за изглед на модел) | MVVM (Model View ViewModel) |
---|---|
Контролерът е входната точка към приложението. | Изгледът е входната точка към приложението. |
Едно към много взаимоотношения между контролер и изглед. | Връзки едно към много между View & View Model. |
Изгледът няма препратка към контролера | View имат препратки към View-Model. |
MVC е стар модел | MVVM е сравнително нов модел. |
Труден за четене, промяна, тестване на единица и повторно използване на този модел | Процесът на отстраняване на грешки ще бъде сложен, когато имаме сложни обвързвания на данни. |
Компонентът на модела MVC може да бъде тестван отделно от потребителя | Лесен за отделно тестване на единици и кодът се управлява от събития. |
Характеристики на MVC
Ето важни характеристики на MVC:
- Лесна и без триене възможност за тестване. Високо тестваема, разширяема и включваема рамка
- Също така можете да използвате съществуващи функции, предлагани от ASP.NET, Django, JSP и др.
- Предлага пълен контрол върху вашия HTML, както и върху вашите URL адреси.
- Поддържа разработка, управлявана от тестове (TDD)
- Тази архитектура предлага разделяне на логиката
- Позволява маршрутизиране за удобни за SEO URL адреси.
- Предлага картографиране за разбираеми и търсещи URL адреси.
Характеристики на MVVM
Ето характеристиките на MVVM архитектурата:
- MVVM е написан за десктоп приложение с възможности за обвързване на данни – XAML и интерфейса INotifyPropertyChanged
- Ако искате да направите модификация в View-Model, View-Model използва модел на наблюдател.
- Моделът MVVM се използва най-вече от WPF, Silverlight, nRoute и др.
Предимства на MVC
Ето предимствата/плюсовете на MVC
- По-лесна поддръжка за нов тип клиенти
- Разработването на различните компоненти може да се извършва паралелно.
- Той избягва сложността, като разделя приложението на отделни (MVC) единици
- Той използва само модел на преден контролер, който обработва заявки за уеб приложения с помощта на един контролер.
- Предлага най-добрата поддръжка за тестово разработка
- Работи добре за уеб приложения, които се поддържат от големи екипи от уеб дизайнери и разработчици.
- Той осигурява чисто разделяне на проблемите (SoC).
- Всички класове и обекти са независими един от друг, така че можете да ги тествате поотделно.
- MVC позволява логическо групиране на свързани действия на контролер заедно.
Предимства на MVVM
Ето плюсовете/предимствата на MVVM
- Бизнес логиката е отделена от Ул
- Лесен за поддръжка и тестване
- Лесни за повторна употреба компоненти
- Слабо свързана архитектура: MVVM прави архитектурата на вашето приложение като слабо свързана.
- Можете да пишете единични тестови случаи както за модела на изглед, така и за слоя на модела, без да е необходимо да препращате към View'.
Недостатъци на MVC
Тук са минусите/недостатъците на MVC
- Бизнес логиката е смесена с Ул
- Трудни за повторно използване и прилагане тестове
- Няма официална поддръжка за валидиране
- Повишена сложност и неефективност на данните
- Трудността при използването на MVC с модерния потребителски интерфейс
- Има нужда от множество програмисти, които да извършват паралелно програмиране.
- Изискват се познания за множество технологии.
Недостатъци на MVVM
Тук са минуси/недостатъци на MVVM
- Поддръжка на много кодове в контролера
- Някои хора смятат, че за прости потребителски интерфейси на MVVM архитектурата може да бъде прекалено много.
- Не предлага тясна връзка между изгледа и модела на изгледа