Rozdíl mezi MVC a MVVM

Web je víc než to, co vypadá na vnější straně. Ve skutečnosti se strukturální struktura webové stránky mění stejně jako samotná webová stránka. Web je komplexní web mnoha komponent, které spolu vzájemně spolupracují při spuštění aplikace. Vezměte si například Facebook, což je jeden z nejsložitějších webů, které používáme téměř každý den. Přejděte na svou domovskou stránku a uvidíte, jak webové stránky zpracovávají téměř tucet požadavků na data najednou, aby se stránka naplnila řadou komponent. Lze si snadno představit, že logika vzájemného působení složek při spuštění programu, jako je Facebook, se může velmi lišit od ostatních webových stránek. Základní funkčnost jakéhokoli webu je definována snadností, s jakou frontend komunikuje s vhodným modelem, aby získal data, která divák hledá. MVC a MVVM jsou dva populární designové vzory ve světě vývoje softwaru.

Co je MVC?

MVC, zkratka pro Model-View-Controller, je aplikační návrhový model běžně používaný pro vývoj moderních uživatelských rozhraní. Vzor MVC je jádrem moderního objektově orientovaného vývoje softwaru, který vyšel z objektově orientované designérské komunity. Původně se jmenoval Thing-Model-View-Editor v roce 1979, ale později byl zjednodušen a přejmenován na Model-View-Controller. Používá se hlavně pro návrh a vývoj mobilních a webových aplikací. Rozděluje uživatelské rozhraní aplikace do tří samostatných částí: Model, Pohled a Řadič.

Modelka: Model představuje sadu tříd, které popisují data, která plánujete použít v aplikaci. Popisuje společný formát dat, ale může také obsahovat obchodní pravidla, převody, ověřovací logiku a různé další funkce.

Pohled: Pohled představuje data, která mají být zobrazena z modelu. Definuje způsob zobrazení uživatelského rozhraní aplikace. Model může mít několik pohledů v závislosti na aplikaci. Model pohledu v konstrukčním vyjádření v zásadě zobrazuje komponenty uživatelského rozhraní, jako je HTML, jQuery atd.

Ovladač: Řadič je ústřední součástí aplikace MVC, která zpracovává komunikaci od uživatele ve formě událostí, celkového toku aplikací a logiky specifické pro aplikaci. Události jsou poté převedeny na servisní požadavky a předány modelu nebo pohledu. Je to jediná součást, prostřednictvím které uživatel interaguje se systémem.

Co je MVVM?

Model-View-ViewModel neboli MVVM je populární softwarový architektonický vzorec běžně používaný pro vývoj opakovaně použitelných a snadno testovatelných webových aplikací. MVVM je založeno na vzoru MVC, ale vylepšuje se na modelu MVC zavedením nové třídy s názvem ViewModel, která spravuje data specifická pro pohled. Hlavním cílem modelu MVVM je mít skutečné oddělení mezi komponentami Model a View. Hlavní součásti modelu jsou: Model, View a ViewModel.

Modelka: Princip zůstává stejný jako u modelu MVC. Model představuje obchodní logiku a data a určuje, jak by se s údaji mělo zacházet.

Pohled: Model View představuje data, která mají být zobrazena, ale neprovádí žádné manipulace s daty. Pohled je stejný jako v MVC, s výjimkou datových vazeb musí být nastaveno pro zobrazení, což se provádí přidáním ViewModel do pohledu.

ViewModel: Jedná se o nejdůležitější součást modelu, protože je navržen tak, aby využíval funkce vázání dat, což ve skutečnosti pomáhá udržovat pohled oddělený od modelu a zároveň funguje jako správce, který usnadňuje komunikaci mezi komponentami Pohled a Model.

Rozdíl mezi MVC a MVVM

Vzor

- Model-View-Controller (MVC) je aplikační návrhový model běžně používaný pro vývoj moderních uživatelských rozhraní. Rozděluje uživatelské rozhraní aplikace do tří samostatných částí: Model, Pohled a Řadič. Model-View-ViewModel (MVVM) je na druhé straně moderní variantou modelu MVC běžně používaného pro vývoj opakovaně použitelných a snadno testovatelných webových aplikací. Hlavními komponentami modelu MVVM jsou Model, View a ViewModel.

Vazba dat

- Klíčovou vlastností, která odlišuje MVVM od jiných vzorů návrhu softwaru, je datová vazba, což je jednoduše mechanismus, který spojuje uživatelské rozhraní s obchodní logikou. Je to klíčová technologie, která spojuje pohledy s jejich ViewModels, což zajišťuje, že modely a vlastnosti jsou synchronizovány s pohledem v ViewModel. To eliminuje potřebu vystavit celý Model pohledu.

Ovladač

- Klíčový rozdíl mezi těmito dvěma architektonickými vzory je v tom, že v MVC je řídicí jednotka zodpovědná za řízení komunikace mezi modelem a pohledem pomocí událostí, zatímco rámec provádí všechny těžké zvedání v MVVM pomocí funkce zvané datová vazba. ViewModel v MVVM pomáhá udržovat pohled oddělený od modelu a současně funguje jako ovladač, který usnadňuje komunikaci mezi komponenty View a Model.

MVC vs. MVVM: srovnávací tabulka

souhrn

Zatímco MVC i MVVM jsou deriváty modelu MVC, MVVM je moderní varianta modelu MVC, která zavádí novou třídu nazvanou ViewModel, která spravuje data specifická pro pohled. Hlavním cílem modelu MVVM je mít skutečné oddělení mezi komponentami Model a View. V MVC je za řízení komunikace mezi modelem a pohledem zodpovědný správce. V MVVM však ViewModel pomáhá udržovat pohled oddělený od modelu a také funguje jako ovladač pro usnadnění komunikace mezi komponenty.