Programování

Prozkoumejte návrhové vzory MVC, MVP a MVVM

Uživatelské rozhraní často obsahuje spoustu přeplněného kódu, hlavně kvůli komplikované logice, kterou potřebuje zvládnout. Prezentační vzory jsou navrženy především s ohledem na jeden cíl, který snižuje složitý kód v prezentační vrstvě a zajišťuje, aby byl kód v uživatelském rozhraní čistý a spravovatelný. V tomto příspěvku představím diskusi o návrhových vzorech MVC, MVP a MVVM a zdůrazním, kdy by jeden měl být návrhem volby nad druhým.

Řadič zobrazení modelu

Rámec Model View Controller (běžně známý jako MVC) vám pomáhá vytvářet aplikace, které se snáze testují a udržují. Skládá se ze tří hlavních složek, a to:

  1. Model - toto je vrstva, která představuje data aplikace
  2. Zobrazit - představuje prezentaci nebo vrstvu uživatelského rozhraní
  3. Řadič - tato vrstva obvykle obsahuje obchodní logiku vaší aplikace

Primárním cílem návrhového vzoru MVC je oddělení obav za účelem usnadnění testovatelnosti. Návrhový vzor řadiče zobrazení modelu umožňuje izolovat obavy a usnadňuje testování a údržbu kódu vaší aplikace. V typickém návrhu MVC požadavek nejprve dorazí na řadič, který váže model s odpovídajícím pohledem. V návrhovém vzoru MVC pohled a řadič využívá návrh strategie a pohled a model se synchronizují pomocí návrhu pozorovatele. Můžeme tedy říci, že MVC je složený vzor. Řadič a pohled jsou volně spojené a jeden řadič lze použít pro více pohledů. Pohled se přihlásí k odběru změn v modelu.

Prezentátor zobrazení modelu

Návrhový vzor MVP (Model View Presenter) se také skládá ze tří komponent - modelu, pohledu a přednášejícího. V návrhovém vzoru MVP je ovladač (v MVC) nahrazen moderátorem. Na rozdíl od návrhového vzoru MVC Presenter odkazuje zpět na pohled, díky čemuž je zesměšňování pohledu jednodušší a jednotkové testování aplikací, které využívají návrhový vzor MVP přes návrhový vzor MVC, je mnohem snazší. V návrhovém vzoru MVP moderátor manipuluje s modelem a také aktualizuje pohled. Existují dvě varianty tohoto designu. Patří mezi ně následující.

  1. Pasivní pohled - v této strategii pohled neví o modelu a moderátor aktualizuje pohled tak, aby odrážel změny v modelu.
  2. Supervising Controller - in this strategy, the view interacts with the model directly to bind data to the data controls without the zásah of the presenter. Přednášející je odpovědný za aktualizaci modelu. Manipuluje se zobrazením pouze v případě potřeby - pokud potřebujete provést složitou logiku uživatelského rozhraní.

Zatímco obě tyto varianty podporují testovatelnost logiky prezentace, dává se přednost variantě pasivního zobrazení před druhou variantou (supervizorem), pokud jde o testovatelnost, protože máte všechny logiky pohledu aktualizované uvnitř moderátora.

Návrh aplikace MVP se upřednostňuje před MVC, když vaše aplikace potřebuje poskytovat podporu pro více technologií uživatelského rozhraní. Je také výhodné, pokud máte komplexní uživatelské rozhraní se spoustou uživatelské interakce. Pokud byste chtěli mít automatizovaný test jednotek na uživatelském rozhraní vaší aplikace, návrhový vzor MVP se dobře hodí a upřednostňuje před tradičním designem MVC.

Model - Pohled - ViewModel (MVVM)

Model - View - ViewModel (MVVM) je variace návrhového vzoru Prezentačního modelu Martina Fowlera. MVVM je vylepšení populárního designu MVC a ViewModel v MVVM se používá k usnadnění separace prezentací. V MVVM je logika uložena v přednášejícím a pohled je zcela izolován od modelu. Zatímco moderátor si není vědoma pohledu, pohled si je vědoma moderátora - moderátor v MVVM se používá k reprezentaci abstraktního pohledu na uživatelské rozhraní. Pasivní pohled znamená, že pohled nemá žádné znalosti modelu. V návrhovém vzoru MVVM je Pohled aktivní a obsahuje informace o chování, událostech a vazbě dat. Všimněte si, že zobrazení v MVVM není zodpovědné za správu informací o stavu - zobrazení je spíše synchronizováno s viewmodelem. Viewmodel v MVVM je zodpovědný za separaci prezentací a zpřístupňuje metody a příkazy ke správě stavu pohledu a manipulaci s modelem.

Jak komunikuje pohled a model pohledu v MVVM? Pohled a model pohledu v MVVM komunikují pomocí metod, vlastností a událostí. Obousměrná vazba dat nebo obousměrná vazba dat mezi pohledem a modelem pohledu zajišťuje, že modely a vlastnosti v modelu pohledu jsou synchronizovány s pohledem. Návrhový vzor MVVM je vhodný pro aplikace, které potřebují podporu pro obousměrné vázání dat.

$config[zx-auto] not found$config[zx-overlay] not found