logo

Úvod do rámca MVC

Za posledných pár rokov sa webové stránky posunuli od jednoduchých HTML stránok s trochou CSS k neuveriteľne zložitým aplikáciám, na ktorých súčasne pracujú tisíce vývojárov. Na prácu s týmito zložitými webovými aplikáciami vývojári používajú rôzne vzory návrhov na usporiadanie svojich projektov, aby bol kód menej zložitý a ľahšie sa s ním pracovalo. Najpopulárnejší z týchto vzorov je MVC taktiež známy ako Ovládač zobrazenia modelu.

čo je MVC?

The Model-View-Controller (MVC) framework je architektonický/dizajnový vzor, ​​ktorý rozdeľuje aplikáciu na tri hlavné logické komponenty Model , vyhliadka , a Ovládač . Každý architektonický komponent je vytvorený tak, aby zvládal špecifické vývojové aspekty aplikácie. Izoluje od seba vrstvu obchodnej logiky a prezentácie. Tradične sa používal pre stolné počítače grafické používateľské rozhrania (GUI) . V súčasnosti je MVC jedným z najčastejšie používaných štandardných rámcov pre vývoj webových aplikácií na vytváranie škálovateľných a rozšíriteľných projektov. Používa sa aj pri navrhovaní mobilných aplikácií.



MVC vytvoril Trygve Reenskaug . Hlavným cieľom tohto návrhového vzoru bolo vyriešiť problém používateľov ovládajúcich veľkú a komplexnú množinu údajov rozdelením veľkej aplikácie do špecifických sekcií, z ktorých všetky majú svoj vlastný účel.

Vlastnosti MVC:

  • Poskytuje jasné oddelenie obchodná logika, logika používateľského rozhrania a vstupná logika.
  • Ponúka plnú kontrolu nad vaším HTML a URL, čo uľahčuje návrh architektúry webových aplikácií.
  • Je to výkonný komponent mapovania adries URL, pomocou ktorého môžeme vytvárať aplikácie, ktoré majú zrozumiteľné a vyhľadávateľné adresy URL.
  • Podporuje to Testom riadený vývoj (TDD).

Ak sa chcete dozvedieť viac o výhodách používania rámca MVC, pozrite si článok – Výhody používania rámca MVC

Komponenty MVC:

Rámec MVC obsahuje nasledujúce 3 komponenty:



  • Ovládač
  • Model
  • vyhliadka

Návrh architektúry MVC

Ovládač:

Controller je komponent, ktorý umožňuje prepojenie medzi pohľadmi a modelom, takže funguje ako sprostredkovateľ. Ovládač sa nemusí starať o manipuláciu s dátovou logikou, len hovorí modelu, čo má robiť. Spracováva všetku obchodnú logiku a prichádzajúce požiadavky, manipuluje s údajmi pomocou Model komponent a interagovať s vyhliadka na vykreslenie konečného výstupu.

vyhľadávač a príklady

Vyhliadka:

The vyhliadka komponent sa používa pre celú logiku používateľského rozhrania aplikácie. Vytvára používateľské rozhranie pre používateľa. Pohľady sú vytvárané údajmi, ktoré sú zhromažďované komponentom modelu, ale tieto údaje nie sú získavané priamo, ale prostredníctvom kontroléra. Interaguje iba s ovládačom.



Model:

The Model komponent zodpovedá všetkej logike súvisiacej s údajmi, s ktorou používateľ pracuje. To môže predstavovať buď údaje, ktoré sa prenášajú medzi komponentmi View a Controller, alebo akékoľvek iné údaje súvisiace s obchodnou logikou. Môže pridávať alebo získavať údaje z databázy. Reaguje na požiadavku kontrolóra, pretože kontrolór nemôže sám interagovať s databázou. Model interaguje s databázou a vracia požadované údaje späť do riadiacej jednotky.

Fungovanie rámca MVC s príkladom:

Predstavme si, že koncový používateľ odošle požiadavku na server, aby získal zoznam študentov študujúcich v triede. Server potom odošle túto požiadavku konkrétnemu kontrolórovi, ktorý obsluhuje študentov. Tento kontrolór by potom požiadal model, ktorý spracováva študentov, aby vrátil zoznam všetkých študentov študujúcich v triede.

Tok údajov v komponentoch MVC

Model by v databáze požiadal o zoznam všetkých študentov a potom by tento zoznam vrátil späť do kontrolóra. Ak bola odpoveď modelu úspešná, kontrolór by požiadal zobrazenie spojené so študentmi, aby vrátilo prezentáciu zoznamu študentov. Toto zobrazenie prevezme zoznam študentov z kontroléra a vykreslí zoznam do HTML, ktoré môže použiť prehliadač.

Kontrolór potom vezme túto prezentáciu a vráti ju späť používateľovi. Tým sa žiadosť končí. Ak predtým model vrátil chybu, kontrolér by túto chybu spracoval tak, že požiada zobrazenie, ktoré spracováva chyby, aby zobrazilo prezentáciu pre túto konkrétnu chybu. Táto chybová prezentácia by sa potom vrátila používateľovi namiesto prezentácie zoznamu študentov.

Ako môžeme vidieť z vyššie uvedeného príkladu, model spracováva všetky údaje. Pohľad zvládne všetky prezentácie a ovládač len povie modelu a pohľadu, čo má robiť. Toto je základná architektúra a fungovanie rámca MVC.

Architektonický vzor MVC nám umožňuje dodržiavať nasledujúce princípy návrhu:
1. Rozdeľuj a panuj. Tieto tri komponenty môžu byť navrhnuté do určitej miery nezávisle.
2. Zvýšte súdržnosť. Komponenty majú silnejšiu súdržnosť vrstiev, ako keby boli zobrazenie a ovládač spolu v jednej vrstve používateľského rozhrania.
3. Znížte spojku. Komunikačné kanály medzi tromi komponentmi sú minimálne a dajú sa ľahko nájsť.
4. Zvýšte opätovné použitie. Pohľad a ovládač bežne vo veľkej miere využívajú opakovane použiteľné komponenty pre rôzne druhy ovládacích prvkov používateľského rozhrania. Používateľské rozhranie sa však stane špecifickým pre aplikáciu, a preto nebude jednoducho znovu použiteľné.
5. Dizajn pre flexibilitu. Zvyčajne je celkom jednoduché zmeniť používateľské rozhranie zmenou zobrazenia, ovládača alebo oboch.

Výhody MVC:

  • Kódy sa ľahko udržiavajú a dajú sa ľahko rozšíriť.
  • MVC Model komponent je možné testovať samostatne.
  • Komponenty MVC môžu byť vyvíjané súčasne.
  • Znižuje zložitosť rozdelením aplikácie na tri jednotky. Model, pohľad a ovládač.
  • Podporuje to Testom riadený vývoj (TDD).
  • Funguje dobre pre webové aplikácie, ktoré podporujú veľké tímy webových dizajnérov a vývojárov.
  • Táto architektúra pomáha testovať komponenty nezávisle, pretože všetky triedy a objekty sú na sebe nezávislé
  • Optimalizácia pre vyhľadávače (SEO) Priateľský.

Nevýhody MVC:

  • Je ťažké čítať, meniť, testovať a znova používať tento model
  • Nie je vhodný na vytváranie malých aplikácií.
  • Neefektívnosť prístupu k údajom.
  • Navigácia v rámci môže byť zložitá, pretože zavádza nové vrstvy abstrakcie, ktoré vyžadujú, aby sa používatelia prispôsobili kritériám rozkladu MVC.
  • Zvýšená zložitosť a neefektívnosť údajov

Populárne rámce MVC:

Niektoré z najpopulárnejších a najpoužívanejších rámcov MVC sú uvedené nižšie.

vôl vs býk
  • Ruby on Rails
  • Django
  • CherryPy
  • Jarná MVC
  • Katalyzátor
  • Koľajnice
  • Zend Framework
  • Palivo PHP
  • Laravel
  • symfónia

MVC sa vo všeobecnosti používa v aplikáciách, ktoré bežia na jednej grafickej pracovnej stanici. Rozdelenie logických komponentov umožňuje čitateľnosť a modularitu a zároveň robí to pohodlnejšie pre testovaciu časť.