logo

Úvod do rámce MVC

Webové stránky se za posledních pár let posunuly od jednoduchých HTML stránek s trochou CSS k neuvěřitelně složitým aplikacím, na kterých pracují tisíce vývojářů současně. Pro práci s těmito složitými webovými aplikacemi používají vývojáři různé návrhové vzory pro rozvržení svých projektů, aby byl kód méně složitý a snáze se s ním pracovalo. Nejoblíbenější z těchto vzorů je MVC také známý jako Ovladač zobrazení modelu.

Co je MVC?

The Model-View-Controller (MVC) framework je architektonický/návrhový vzor, ​​který rozděluje aplikaci do tří hlavních logických komponent Modelka , Pohled , a Ovladač . Každá architektonická komponenta je vytvořena tak, aby zvládla specifické vývojové aspekty aplikace. Izoluje od sebe vrstvu obchodní logiky a prezentací. Tradičně se používal pro stolní počítače grafická uživatelská rozhraní (GUI) . V současné době je MVC jedním z nejčastěji používaných průmyslových standardů pro vývoj webových aplikací pro vytváření škálovatelných a rozšiřitelných projektů. Používá se také pro navrhování mobilních aplikací.



MVC vytvořil Trygve Reenskaug . Hlavním cílem tohoto návrhového vzoru bylo vyřešit problém uživatelů ovládajících velký a složitý soubor dat rozdělením velké aplikace do specifických sekcí, které mají všechny svůj vlastní účel.

Vlastnosti MVC:

  • Poskytuje jasné oddělení obchodní logika, logika uživatelského rozhraní a vstupní logika.
  • Nabízí plnou kontrolu nad vaším HTML a URL, což usnadňuje návrh architektury webových aplikací.
  • Je to výkonný komponent pro mapování URL, pomocí kterého můžeme vytvářet aplikace, které mají srozumitelné a prohledávatelné adresy URL.
  • Podporuje to Testem řízený vývoj (TDD).

Další informace o výhodách používání MVC Framework naleznete v článku – Výhody použití rámce MVC

Komponenty MVC:

Rámec MVC obsahuje následující 3 komponenty:



  • Ovladač
  • Modelka
  • Pohled

Návrh architektury MVC

Ovladač:

Controller je komponenta, která umožňuje propojení mezi pohledy a modelem, takže funguje jako prostředník. Řadič se nemusí starat o zpracování datové logiky, pouze říká modelu, co má dělat. Zpracovává veškerou obchodní logiku a příchozí požadavky, manipuluje s daty pomocí Modelka komponentu a interagovat s Pohled k vykreslení konečného výstupu.

java verze linux

Pohled:

The Pohled komponenta se používá pro veškerou logiku uživatelského rozhraní aplikace. Vytváří uživatelské rozhraní pro uživatele. Pohledy jsou vytvářeny daty, která jsou shromažďována komponentou modelu, ale tato data nejsou přijímána přímo, ale prostřednictvím ovladače. Spolupracuje pouze s ovladačem.



Modelka:

The Modelka komponenta odpovídá veškeré logice související s daty, se kterou uživatel pracuje. To může představovat buď data, která jsou přenášena mezi komponentami View a Controller, nebo jakákoli jiná data související s obchodní logikou. Může přidávat nebo načítat data z databáze. Reaguje na požadavek správce, protože správce nemůže sám pracovat s databází. Model interaguje s databází a poskytuje požadovaná data zpět do regulátoru.

Fungování rámce MVC s příkladem:

Představme si, že koncový uživatel odešle na server požadavek na získání seznamu studentů studujících ve třídě. Server by pak tento požadavek odeslal konkrétnímu kontroléru, který zpracovává studenty. Tento kontrolér by pak požádal model, který zpracovává studenty, aby vrátil seznam všech studentů studujících ve třídě.

k shlukovací algoritmus

Tok dat v komponentách MVC

Model by se dotazoval databáze na seznam všech studentů a pak by tento seznam vrátil zpět do kontroléru. Pokud byla zpětná odpověď z modelu úspěšná, pak by kontrolér požádal pohled spojený se studenty, aby vrátil prezentaci seznamu studentů. Toto zobrazení převezme seznam studentů z kontroléru a vykreslí seznam do HTML, které může používat prohlížeč.

Řadič pak vezme tuto prezentaci a vrátí ji zpět uživateli. Tím žádost končí. Pokud dříve model vrátil chybu, řadič by tuto chybu zpracoval tak, že požádá pohled, který zpracovává chyby, aby vykreslil prezentaci pro tuto konkrétní chybu. Tato chybová prezentace by pak byla vrácena uživateli namísto prezentace seznamu studentů.

Jak vidíme z výše uvedeného příkladu, model zpracovává všechna data. Pohled zpracovává všechny prezentace a ovladač pouze říká modelu a pohledu, co má dělat. Toto je základní architektura a fungování rámce MVC.

Architektonický vzor MVC nám umožňuje dodržovat následující principy návrhu:
1. Rozděl a panuj. Tyto tři komponenty mohou být navrženy do určité míry nezávisle.
2. Zvyšte soudržnost. Komponenty mají silnější soudržnost vrstev, než kdyby byly pohled a ovladač společně v jedné vrstvě uživatelského rozhraní.
3. Snižte spojku. Komunikační kanály mezi těmito třemi komponentami jsou minimální a lze je snadno najít.
4. Zvyšte opětovné použití. Pohled a ovladač obvykle široce využívají opakovaně použitelné součásti pro různé druhy ovládacích prvků uživatelského rozhraní. Uživatelské rozhraní však bude specifické pro aplikaci, takže nebude snadno znovu použitelné.
5. Design pro flexibilitu. Obvykle je docela snadné změnit uživatelské rozhraní změnou pohledu, ovladače nebo obojího.

Výhody MVC:

  • Kódy se snadno udržují a lze je snadno rozšířit.
  • MVC Modelka komponentu lze testovat samostatně.
  • Komponenty MVC mohou být vyvíjeny současně.
  • Snižuje složitost rozdělením aplikace do tří jednotek. Model, pohled a ovladač.
  • Podporuje to Testem řízený vývoj (TDD).
  • Funguje dobře pro webové aplikace, které jsou podporovány velkými týmy webových designérů a vývojářů.
  • Tato architektura pomáhá testovat komponenty nezávisle, protože všechny třídy a objekty jsou na sobě nezávislé
  • Optimalizace pro vyhledávače (SEO) Přátelský.

Nevýhody MVC:

  • Tento model je obtížné číst, měnit, testovat a znovu používat
  • Není vhodný pro vytváření malých aplikací.
  • Neefektivita přístupu k datům.
  • Navigace v rámci může být složitá, protože zavádí nové vrstvy abstrakce, která vyžaduje, aby se uživatelé přizpůsobili kritériím rozkladu MVC.
  • Zvýšená složitost a neefektivnost dat

Populární rámce MVC:

Některé z nejpopulárnějších a nejrozšířenějších rámců MVC jsou uvedeny níže.

  • Ruby on Rails
  • Django
  • CherryPy
  • Jarní MVC
  • Katalyzátor
  • Kolejnice
  • Zend Framework
  • Palivo PHP
  • Laravel
  • Symfonie

MVC se obecně používá v aplikacích, které běží na jedné grafické pracovní stanici. Rozdělení logických komponent umožňuje čitelnost a modularitu a zároveň zpříjemňuje testovací část.