Programovanie

Preskúmanie návrhových vzorov MVC, MVP a MVVM

Používateľské rozhranie často obsahuje veľa preplneného kódu, predovšetkým kvôli komplikovanej logike, ktorú musí zvládnuť. Prezentačné vzory sú navrhované predovšetkým s ohľadom na jeden cieľ: zníženie zložitého kódu v prezentačnej vrstve a zabezpečenie čistoty a spravovateľnosti kódu v používateľskom rozhraní. V tomto príspevku predstavím diskusiu o návrhových vzoroch MVC, MVP a MVVM a zdôrazním, kedy by jeden mal byť návrhom voľby nad ostatnými.

Ovládač modelu View

Rámec Model View Controller (bežne známy ako MVC) vám pomáha vytvárať aplikácie, ktoré sa dajú ľahšie testovať a udržiavať. Skladá sa z troch hlavných komponentov, a to:

  1. Model - toto je vrstva, ktorá predstavuje údaje aplikácie
  2. Zobraziť - predstavuje prezentáciu alebo vrstvu používateľského rozhrania
  3. Kontrolér - táto vrstva zvyčajne obsahuje obchodnú logiku vašej aplikácie

Primárnym cieľom návrhového vzoru MVC je oddelenie obáv s cieľom uľahčiť testovateľnosť. Dizajnový vzor radiča zobrazenia modelu vám umožňuje izolovať obavy a uľahčuje testovanie a údržbu kódu vašej aplikácie. V typickom dizajne MVC požiadavka najskôr dorazí na radič, ktorý viaže model so zodpovedajúcim zobrazením. V návrhovom vzore MVC pohľad a kontrolér využívajú návrh stratégie a pohľad a model sa synchronizujú pomocou vzoru pozorovateľa. Preto môžeme povedať, že MVC je zložený vzor. Ovládač a pohľad sú voľne spojené a jeden ovládač je možné použiť pre viac pohľadov. Zobrazenie sa prihlási na odber zmien v modeli.

Prezentátor zobrazenia modelu

Návrhový vzor MVP (Model View Presenter) tiež pozostáva z troch komponentov - modelu, pohľadu a prezentátora. V návrhovom vzore MVP je radič (v MVC) nahradený prezentujúcim. Na rozdiel od návrhového vzoru MVC, prezentujúci odkazuje späť na pohľad, vďaka ktorému je posmievanie pohľadu jednoduchšie a jednotkové testovanie aplikácií, ktoré využívajú návrhový vzor MVP nad návrhovým vzorom MVC, je oveľa jednoduchšie. V návrhovom vzore MVP moderátor manipuluje s modelom a tiež aktualizuje pohľad. Existujú dve variácie tohto dizajnu. Patria sem nasledujúce.

  1. Pasívny pohľad - v tejto stratégii pohľad nepozná model a moderátor aktualizuje pohľad tak, aby odrážal zmeny v modeli.
  2. Dohľad nad kontrolórom - v tejto stratégii pohľad interaguje s modelom priamo na naviazanie údajov na ovládacie prvky údajov bez zásahu prezentujúceho. Predkladateľ zodpovedá za aktualizáciu modelu. Manipuluje so zobrazením iba v prípade potreby - ak potrebujete vykonať komplexnú logiku používateľského rozhrania.

Zatiaľ čo obidva tieto varianty podporujú testovateľnosť prezentačnej logiky, variant pasívneho zobrazenia je uprednostňovaný pred iným variantom (dohliadajúci radič), pokiaľ ide o testovateľnosť predovšetkým preto, že máte v logu vo vnútri prezentátora aktualizovanú logiku.

Návrhový vzor MVP sa uprednostňuje pred MVC, keď vaša aplikácia potrebuje poskytovať podporu pre viac technológií používateľského rozhrania. Je tiež výhodné, ak máte zložité používateľské rozhranie s mnohými interakciami používateľa. Ak by ste chceli mať automatizovaný test jednotky na užívateľskom rozhraní svojej aplikácie, návrhový vzor MVP je vhodný a preferovaný pred tradičným dizajnom MVC.

Model - Zobraziť - ViewModel (MVVM)

Model - View - ViewModel (MVVM) je variáciou návrhového vzoru prezentačného modelu Martina Fowlera. MVVM je vylepšením populárneho dizajnu MVC a model ViewModel v MVVM sa používa na uľahčenie separácie prezentácií. V MVVM je logika uložená v prezentéri a pohľad je úplne izolovaný od modelu. Zatiaľ čo moderátor nevie o danom zobrazení, ten si je vedomý - moderátor v MVVM slúži na predstavenie abstraktného pohľadu na užívateľské rozhranie. Pasívne zobrazenie znamená, že nemá žiadne vedomosti o modeli. V návrhovom vzore MVVM je zobrazenie aktívne a obsahuje informácie o správaní, udalostiach a väzbe údajov. Všimnite si, že pohľad v MVVM nie je zodpovedný za správu informácií o stave - pohľad je skôr synchronizovaný s viewmodelom. Viewmodel v MVVM je zodpovedný za oddelenie prezentácie a sprístupňuje metódy a príkazy na riadenie stavu pohľadu a manipuláciu s modelom.

Ako komunikuje pohľad a model zobrazenia v MVVM? Pohľad a model pohľadu v MVVM komunikujú pomocou metód, vlastností a udalostí. Obojsmerné viazanie údajov alebo obojsmerné viazanie údajov medzi pohľadom a modelom zobrazenia zaisťuje synchronizáciu modelov a vlastností v modeli zobrazenia s pohľadom. Návrhový vzor MVVM sa dobre hodí v aplikáciách, ktoré potrebujú podporu pre obojsmerné viazanie databáz.

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