MVC, MVP, MVVM: Ktorý si vybrať?

MVC, MVP, MVVM: Ktorý si vybrať?

Moderné aplikácie potrebujú takú rozmanitosť funkcií, že proces ich vývoja narástol na veľkosti a zložitosti. Ak chcete pomôcť, môžete použiť architektonický návrhový vzor. Podporujú vytváranie aplikácií, ktoré sa dajú ľahko testovať a udržiavať.





Tri najobľúbenejšie dizajnové vzory sú MVC, MVP a MVVM. MVC znamená model, zobrazenie a ovládač, zatiaľ čo MVP znamená model, zobrazenie a prezentátor a MVVM znamená model, zobrazenie a zobrazenie modelu.





Architektonické a dizajnové vzory

Architektonický vzor

Architektonický vzor objasňuje a definuje niektoré kľúčové komponenty softvérovej architektúry. Aj keď architektonický vzor vyjadruje obraz systému, nie je to architektúra . V skutočnosti ide o všeobecné a opakovane použiteľné riešenie bežne sa vyskytujúceho problému v softvérovej architektúre v určitom kontexte.





Dizajnový vzor

Návrhový vzor je formalizovaný najlepší postup, ktorý môžete použiť na riešenie bežných problémov pri navrhovaní aplikácie alebo systému.

Rozdiel medzi architektonickým a dizajnovým vzorom

Začnime bežným pojmom - vzor. V softvéri je vzor opakujúcou sa vlastnosťou, ktorá vám umožňuje rozdeliť obrovskú a zložitú štruktúru na menšie, jednoduchšie komponenty. Tento vzor môžete použiť na vytvorenie všeobecného riešenia pre triedu problémov.



V každej úrovni vývoja softvéru budete používať rôzne nástroje. Na menších úrovniach sú tieto nástroje návrhovými vzormi. Architektonické vzory existujú na väčších úrovniach a programovacie paradigmy na úrovni implementácie.

Prečo potrebujeme architektonické dizajnové vzory?

Počas vývoja softvéru môžete použiť vzory architektonických návrhov na riešenie bežných problémov. Dobrá architektúra vám môže tiež pomôcť:





  • Rozdeľte zložité úlohy na jednoduchšie úlohy.
  • Znížte počet chýb.
  • Vytvárajte testovateľný a udržiavateľný kód.

Bez architektonického vzoru však môžete čeliť ťažkostiam pri udržiavaní obchodnej logiky vašej aplikácie.

Model, View, ViewModel, Controller a Presenter

Predtým, ako sa pozriete na každý vzor, ​​tu sú pojmy, ktoré ich tvoria:





  • Model ukladá dáta a komunikuje priamo s databázou. Model je časť, ktorá predstavuje vaše dáta a aplikačnú logiku. Definuje obchodné pravidlá, ktoré riadia manipuláciu s údajmi, ich úpravu alebo spracovanie.
  • vyhliadka zobrazuje údaje modelu a je zodpovedný za reprezentáciu údajov v používateľskom rozhraní.
  • ZobraziťModel je exkluzívny pre vzor MVVM. Toto je abstrakcia vrstvy zobrazenia a funguje aj ako obal pre údaje modelu.
  • Ovládač je komponent, ktorý integruje pohľad a model.
  • Moderátor je komponent, ktorý existuje iba v modeli MVP. Presenter získava vstup z komponentu zobrazenia a spracováva dáta pomocou modelu.

Vzory MVC, MVP a MVVM

Vzor model-zobrazenie-ovládač

The Architektonický vzor MVC bol prvý a dnes je populárny v oblasti webových aplikácií. Bol predstavený v 70. rokoch 20. storočia. Tento vzor vám umožňuje zostaviť aplikáciu na princípe Separation of Concerns (SoC). Zmierňuje námahu, ktorú potrebujete na testovanie, údržbu a vývoj vašej aplikácie.

Vo vzore MVC model nerozumie pohľadu alebo ovládaču. Pozorovateľ modelu dostane upozornenie vždy, keď dôjde k zmene pohľadu a ovládača. Riadiaca jednotka pomáha procesu smerovania pripojiť model k príslušnému pohľadu.

Niektoré z výhod MVC vzoru sú:

ako pridať používateľov do Linuxu
  • Oddelenie obáv (sústredenejšie).
  • Uľahčuje testovanie a správu kódu.
  • Podporuje oddelenie vrstiev aplikácie.
  • Lepšia organizácia kódu a jeho opätovné použitie.

MVC funguje takto:

  Obrázok diagramu, ktorý ilustruje, ako funguje MVC

Vďaka SoC môže MVC zmenšiť veľkosť kódu a vytvoriť dobrý kód, ktorý je čistý a spravovateľný.

Vzor Model-View-Presenter

Vzor MVP zdieľa s MVC dve zložky: model a pohľad. Nahrádza ovládač prezentérom. Prezentátor – ako už názov napovedá – sa používa na prezentáciu niečoho. Umožňuje vám to ľahšie zosmiešniť pohľad.

V MVP má prezentujúci funkcionalitu „stredného muža“, pretože je naňho tlačená všetka prezentačná logika. Pohľad a prezentujúci v MVP sú tiež navzájom nezávislé a interagujú prostredníctvom rozhrania.

Tu je ilustrácia toho, ako funguje vzor MVP:

  Obrázok diagramu, ktorý ilustruje, ako funguje MVP

Prezentujúci prijíma vstup od používateľa prostredníctvom zobrazenia. Potom spracuje akcie používateľa pomocou modelu a výsledky vráti späť do zobrazenia. Prezentátor komunikuje s pohľadom cez rozhrania.

Model-View-ViewModel Pattern

MVVM je moderná evolúcia MVC. Hlavným cieľom MVVM je poskytnúť jasné oddelenie medzi doménovou logikou a prezentačnou vrstvou. MVVM podporuje obojsmernú dátovú väzbu medzi zobrazením a modelom zobrazenia.

ako sa odhlásiť z netflixu v roku

Vzor MVVM vám umožňuje oddeliť pohľad a model vášho kódu. To znamená, že keď sa model zmení, zobrazenie nemusí byť potrebné a naopak. Pomocou modelu zobrazenia môžete vykonať testovanie jednotiek a otestovať svoje logické správanie bez toho, aby ste zahrnuli svoj pohľad.

Tu je ukážka toho, ako MVVM funguje:

  Obrázok diagramu, ktorý ilustruje, ako funguje MVVM

Kedy použiť MVC, MVP a MVVM

Teraz, keď ste sa dozvedeli o každom vzore, zistite, kedy ho použiť.

Kedy použiť MVC

MVC je jednoducho implementáciou Separation of Concerns. Ak vaša aplikácia potrebuje oddeliť údaje (model), drvenie údajov (ovládač) a prezentáciu údajov (zobrazenie), MVC bude fungovať dobre. MVC tiež dobre poslúži v aplikácii, kde sa zdroj údajov a/alebo prezentácia údajov môže kedykoľvek zmeniť.

Kedy použiť MVP

MVP môžete použiť, keď má vaša aplikácia obojsmerný tok. Ak interakcie používateľov potrebujú od modelu niečo požadovať a výsledok tejto požiadavky okamžite zmení používateľské rozhranie, zvážte MVP.

Kedy použiť MVVM

MVVM budete chcieť použiť, keď:

  • Musíte zdieľať projekt s dizajnérom a práca na dizajne a vývoji môže prebiehať nezávisle.
  • Pre svoje riešenia potrebujete testovanie jednotiek.
  • Musíte mať opakovane použiteľné komponenty v rámci projektov vo vašej organizácii aj medzi nimi.
  • Chcete väčšiu flexibilitu pri zmene pohľadov bez toho, aby ste museli refaktorovať inú logiku v kódovej základni.

Ktorý vzor by ste si mali vybrať?

Hlavným dôvodom použitia dizajnového vzoru je zníženie zložitosti. Môžete to urobiť znížením celkovej zložitosti alebo nahradením neznámej zložitosti známou. Ak návrhový vzor nedokáže znížiť zložitosť ani jedným z týchto dvoch spôsobov, nepoužívajte žiadny z nich; nepridá to žiadnu hodnotu.

Ak ste si skutočne istí, že by ste mali použiť dizajnový vzor, ​​skúste si vytvoriť kontrolný zoznam. Vychádzajte zo situácií, ktoré ste tu videli, a vyberte si to, čo najlepšie vyhovuje vášmu projektu.