MVC vs MVVM – rozdíl mezi nimi

Klíčové rozdíly mezi MVC a MVVM

  • MVC framework je architektonický vzor, ​​který rozděluje aplikaci na tři hlavní logické komponenty Model, View a Controller. Na druhou stranu MVVM umožňuje oddělení vývoje grafického uživatelského rozhraní pomocí značkovacího jazyka nebo kódu GUI.
  • V MVC je řadič vstupním bodem do aplikace, zatímco v MVVM je pohled vstupním bodem do aplikace.
  • Komponenta MVC Model může být testována odděleně od uživatele, zatímco MVVM je snadné pro samostatné testování jednotek a kód je řízen událostmi.
  • Architektura MVC vytváří vztah „one-to-many“ mezi kontrolérem a View, zatímco architektura MVVM definuje vztah „one-to-many“ mezi View a ViewModel.

Rozdíl mezi MVVM a MVC

Co je MVC?

Jedno Rámec MVC je architektonický vzor, ​​který rozděluje aplikace do tří hlavních logických komponent Model, View a Controller. Odtud zkratka MVC. Úplná forma MVC je Model View Controller.

V této architektuře je komponenta postavena tak, aby zvládla specifické vývojové aspekty aplikace. MVC odděluje od sebe obchodní logiku a prezentační vrstvu. Tento architektonický vzor se používá hlavně pro desktopová grafická uživatelská rozhraní (GUI).

Co je MVVM?

Architektura MVVM umožňuje oddělení vývoje grafického uživatelského rozhraní pomocí značkovacího jazyka nebo kódu GUI. Plná forma MVVM je Model–View–ViewModel.

Model pohledu MVVM je převodník hodnot, což znamená, že je odpovědností modelu pohledu za vystavení datových objektů z modelu takovým způsobem, aby byly objekty snadno spravovány a prezentovány.

Vzor MVC


MVC Architecture
MVC Architecture

Tři důležité komponenty MVC jsou:

  • Model: Zahrnuje všechna data a související logiku.
  • Pohled: Prezentuje data uživateli nebo zpracovává interakci uživatele.
  • Ovladač: Rozhraní mezi komponentami Model a View.

Podívejme se podrobně na každou z těchto komponent:

Model

Komponenta modelu ukládá data a související logiku. Představuje data, která jsou přenášena mezi komponentami ovladače nebo jakoukoli jinou související obchodní logikou.

Například objekt Controller vám pomůže získat informace o zákazníkovi z databáze. Manipuluje s daty a posílá je zpět do databáze nebo je používá k vykreslení stejných dat.

Zobrazit

Pohled je ta část aplikace, která představuje prezentaci dat. Pohledy jsou vytvářeny daty shromážděnými z dat modelu. Pohled požaduje, aby model poskytl informace, aby výstup uživateli znovu odeslal.

Zobrazení také představuje data z grafů, diagramů a tabulek. Například každé zobrazení zákazníka bude zahrnovat všechny komponenty uživatelského rozhraní, jako jsou textová pole, rozevírací seznamy atd.

kontrolor

Řadič je ta část aplikace, která zpracovává interakci uživatele. Ovladač interpretuje vstupy z myši a klávesnice od uživatele a informuje model a pohled, aby se podle potřeby změnily.

Řídicí jednotka odesílá příkazy modelu k aktualizaci jeho stavu (např. uložení konkrétního dokumentu). Řadič také odesílá příkazy do přidruženého pohledu, aby změnil prezentaci pohledu (například posouvání určitého dokumentu).

Vzor MVVM

Zde je vzor pro MVVM:

MVVM Architecture
MVVM Architecture

Architektura MVVM nabízí obousměrnou datovou vazbu mezi pohledem a modelem pohledu. Pomáhá vám také automatizovat šíření úprav v rámci View-Model do pohledu. Model pohledu využívá vzor pozorovatele k provádění změn v modelu pohledu.

Podívejme se na tuto součást podrobně:

Model

Model ukládá data a související logiku. Představuje data, která jsou přenášena mezi komponentami ovladače nebo jakoukoli jinou související obchodní logikou.

Například objekt Controller načte informace o studentech ze školní databáze. Manipuluje s daty a posílá je zpět do databáze nebo je používá k vykreslení stejných dat.

Zobrazit

Zobrazení je zkratka pro komponenty uživatelského rozhraní jako HTML, CSS, jQuery atd. In

zobrazení vzoru je zodpovědné za zobrazení dat, která jsou jako výsledek přijata od správce. Tento pohled je také transformován Model (y) na uživatelské rozhraní (UI).

Zobrazit model

Model pohledu je zodpovědný za prezentaci funkcí, příkazů, metod pro podporu stavu pohledu. Je také odpovědný za ovládání modelu a aktivaci událostí v pohledu.

Rozdíl mezi MVC a MVVM Architecture

Zde je důležitý rozdíl mezi MVVM a MVC

MVC (Řadič zobrazení modelu) MVVM (Model View ViewModel)
Ovladač je vstupním bodem do aplikace. Pohled je vstupním bodem do aplikace.
Jeden až mnoho vztahů mezi Controllerem a View. Jeden až mnoho vztahů mezi View & View Model.
View Nemá odkaz na řadič Pohled má odkazy na model pohledu.
MVC je starý model MVVM je relativně nový model.
Tento model je obtížné číst, měnit, testovat a znovu používat Proces ladění bude komplikovaný, když máme složité datové vazby.
Komponentu MVC Model lze testovat odděleně od uživatele Snadné pro samostatné testování jednotek a kód je řízen událostmi.

Vlastnosti MVC

Zde jsou důležité vlastnosti MVC:

  • Snadná testovatelnost bez tření. Vysoce testovatelný, rozšiřitelný a připojitelný rámec
  • Můžete také využít stávající funkce nabízené ASP.NET, Django, JSP atd.
  • Nabízí plnou kontrolu nad vaším HTML i vašimi URL.
  • Podporuje testem řízený vývoj (TDD)
  • Tato architektura nabízí oddělení logiky
  • Umožňuje směrování pro SEO Friendly URL.
  • Nabízí mapování pro srozumitelné a prohledávatelné adresy URL.

Vlastnosti MVVM

Zde jsou vlastnosti architektury MVVM:

  • MVVM je napsán pro desktopovou aplikaci s možností vazby dat – XAML a rozhraní INotifyPropertyChanged
  • Pokud chcete provést úpravy v modelu pohledu, model pohledu používá vzor pozorovatele.
  • Vzor MVVM většinou používá WPF, Silverlight, nRoute atd.

Výhody MVC

Zde jsou výhody/klady MVC

  • Jednodušší podpora pro nový typ klientů
  • Vývoj různých komponent lze provádět paralelně.
  • Vyhýbá se složitosti rozdělením aplikace do samostatných (MVC) jednotek
  • Používá pouze vzor předního ovladače, který zpracovává požadavky webových aplikací pomocí jediného ovladače.
  • Nabízí nejlepší podporu pro vývoj řízený testováním
  • Funguje dobře pro webové aplikace, které jsou podporovány velkými týmy webových designérů a vývojářů.
  • Poskytuje čisté oddělení obav (SoC).
  • Všechny třídy a objekty jsou na sobě nezávislé, takže je můžete testovat samostatně.
  • MVC umožňuje logické seskupování souvisejících akcí na ovladači dohromady.

Výhody MVVM

Zde jsou výhody/výhody MVVM

  • Obchodní logika je oddělena od Ul
  • Snadná údržba a testování
  • Snadno znovu použitelné komponenty
  • Volně propojená architektura: MVVM dělá vaši aplikační architekturu jako volně propojenou.
  • Můžete psát testovací případy jednotek pro vrstvu viewmodel i model, aniž byste museli odkazovat na View'.

Nevýhody MVC

Zde jsou nevýhody/nevýhody MVC

  • Obchodní logika se mísí s Ul
  • Těžko znovu použít a implementovat testy
  • Žádná formální podpora ověřování
  • Zvýšená složitost a neefektivnost dat
  • Obtížnost používání MVC s moderním uživatelským rozhraním
  • Pro paralelní programování je potřeba více programátorů.
  • Je nutná znalost více technologií.

Nevýhody MVVM

Zde jsou nevýhody/nevýhody MVVM

  • Údržba mnoha kódů v ovladači
  • Někteří lidé si myslí, že pro jednoduchá uživatelská rozhraní může být architektura MVVM přehnaná.
  • Not nabízí těsné spojení mezi pohledem a modelem pohledu