MVC Architextura a rámec s příklady
⚡ Chytré shrnutí
Model-View-Controller (MVC) je architektonický vzor, který odděluje aplikaci do tří komponent – Model, View a Controller – a izoluje tak obchodní logiku od prezentační vrstvy, aby bylo možné vytvářet udržovatelné a testovatelné webové a desktopové aplikace pomocí frameworků, jako jsou Spring, Django a Laravel.

Co je MVC Framework?
Jedno Model-View-Controller (MVC) framework je architektonický vzor, který rozděluje aplikaci na tři hlavní logické komponenty Model, View a Controller. Odtud zkratka MVC. Každá komponenta architektury je vytvořena tak, aby zvládla specifický vývojový aspekt aplikace. MVC odděluje od sebe obchodní logiku a prezentační vrstvu. Tradičně se používal pro desktopová grafická uživatelská rozhraní (GUI). V současné době se architektura MVC ve webové technologii stala populární pro navrhování webových aplikací i mobilních aplikací.
Historie MVC
- Architektura MVC byla poprvé diskutována v roce 1979 Trygve Reenskaugem
- Model MVC byl poprvé představen v roce 1987 v programovacím jazyce Smalltalk.
- MVC byl poprvé přijat jako obecný koncept v článku z roku 1988
- V poslední době se vzory MVC hojně používají v moderních webových aplikacích.
Vlastnosti MVC
- Snadná testovatelnost bez tření. Vysoce testovatelný, rozšiřitelný a připojitelný rámec
- Pro návrh architektury webové aplikace pomocí vzoru MVC nabízí plnou kontrolu nad vaším HTML i vaším URLs
- Využijte stávající funkce poskytované ASP.NET, JSP, Django atd.
- Jasné oddělení logiky: Model, View, Controller. Oddělení aplikačních úkolů viz. obchodní logika, logika Ul a vstupní logika
- URL Směrování pro optimalizaci pro vyhledávače URLs. Výkonný URL-mapping pro srozumitelné a prohledávatelné URLs
- Podporuje vývoj řízený testem (TDD)
MVC Architecture
Nyní, když jsou výhody jasné, zde je podrobná architektura MVC frameworku:

Tři důležité komponenty MVC jsou:
- Model: Obsahuje všechna data a související logiku
- Zobrazit: Prezentuje data uživateli nebo obsluhuje interakci uživatele
- Controller: Rozhraní mezi komponentami Model a View
Pojďme se na každou z těchto komponent podívat podrobněji:
Zobrazit
Pohled je ta část aplikace, která představuje prezentaci dat.
Pohledy (Views) jsou vytvářeny daty shromážděnými z dat modelu. Pohled požaduje od modelu informace, aby mohl uživateli zobrazit výstupní prezentaci.
Pohled také představuje data z grafů, diagramů a tabulek. Například každé zobrazení zákazníka bude zahrnovat všechny komponenty uživatelského rozhraní, jako jsou textová pole, rozevírací seznamy atd.
kontrolor
Kontroler je ta část aplikace, která zpracovává interakci s uživatelem. Kontroler interpretuje vstupy myši a klávesnice od uživatele a informuje model a zobrazení o změnách podle potřeby.
Kontroler odesílá modelu příkazy pro aktualizaci jeho stavu (např. uložení konkrétního dokumentu). Kontroler také odesílá příkazy přidruženému zobrazení pro změnu jeho prezentace (například posouvání konkrétního dokumentu).
Model
Komponenta modelu ukládá data a související logiku. Představuje data, která jsou přenášena mezi komponentami ovladače nebo jakoukoli jinou související obchodní logikou. Například objekt Controller získá informace o zákazníkovi z databáze. Manipuluje s daty a odesílá je zpět do databáze nebo je používá k vykreslení stejných dat.
Reaguje na požadavky z pohledů a také reaguje na pokyny z kontroleru k aktualizaci. Je také nejnižší úrovní vzoru, která je zodpovědná za uchovávání dat.
Příklady MVC
Podívejme se na příklad Model View Controller z každodenního života:
Příklad 1
- Předpokládejme, že jdete do restaurace. Nebudete chodit do kuchyně a připravovat jídlo, které jistě zvládnete i u vás doma. Místo toho tam jdete a čekáte, až přijde číšník.
- Nyní k vám přijde číšník a vy si objednáte jídlo. Číšník neví, kdo jste a co chcete, jen zapsal detail vaší objednávky jídla.
- Poté se číšník přesune do kuchyně. V kuchyni vám číšník jídlo nepřipravuje.
- Kuchař vám připraví jídlo. Číšník mu předá vaši objednávku spolu s číslem vašeho stolu.
- Vařte a pak pro vás připravil jídlo. K vaření používá suroviny. Předpokládejme, že si objednáte zeleninový sendvič. Pak potřebuje chléb, rajče, brambory, kapie, cibuli, kousek, sýr atd., které získává z lednice
- Uvařte poslední jídlo předejte číšníkovi. Nyní je úkolem číšníka přesunout toto jídlo mimo kuchyni.
- Nyní číšník ví, jaké jídlo jste si objednali a jak se podává.
V tomto příkladu architektury MVC
View= You Waiter= Controller Cook= Model Refrigerator= Data
Podívejme se na další příklad modelu MVC,
Příklad 2
Mechanismus pohonu automobilu je dalším příkladem modelu MVC.
- Každé auto se skládá ze tří hlavních částí.
- Pohled: Uživatelské rozhraní: (Řadicí páka, panely, volant, brzda atd.)
- Ovladač - Mechanismus (motor)
- Model – Skladování (nádrž na benzín nebo naftu)
Auto běží z motoru a bere palivo ze skladu, ale jezdí pouze pomocí zmíněných zařízení uživatelského rozhraní.
Populární webové rámce MVC
Zde je seznam některých populárních MVC frameworků:
- Ruby on Rails
- Django
- CakePHP
- Yii
- CherryPy
- Jarní MVC
- Katalyzátor
- Rails
- Zend Framework
- CodeZapalovač
- laravel
- Palivo PHP
- Symphony
Výhody MVC: Klíčové výhody
Zde jsou hlavní výhody použití architektury MVC:
- Snadná údržba kódu, který lze snadno rozšiřovat a rozšiřovat
- Komponentu MVC Model lze testovat odděleně od uživatele
- Snazší podpora pro nové typy klientů
- Vývoj různých komponent lze provádět paralelně.
- Pomůže vám vyhnout se složitosti rozdělením aplikace do tří jednotek. Model, pohled a ovladač
- Používá pouze vzor předního ovladače, který zpracovává požadavky webových aplikací prostřednictvím jediného ovladače.
- Nabízí nejlepší podporu pro testem řízený vývoj
- Funguje dobře pro webové aplikace, které jsou podporovány velkými týmy webových designérů a vývojářů.
- Poskytuje jasné oddělení odpovědností (SoC).
- Optimalizace pro vyhledávače (SEO) Friendly.
- Všechny třídy a objekty jsou na sobě nezávislé, takže je můžete testovat samostatně.
- Návrhový vzor MVC umožňuje logické seskupeníping souvisejících akcí na řadiči dohromady.
Nevýhody použití MVC
- Tento model je obtížné číst, měnit, testovat jednotky a znovu používat
- Navigace v rámci frameworku může být poněkud složitá, protože zavádí nové vrstvy abs.tracce, která vyžaduje, aby se uživatelé přizpůsobili dekompozičním kritériím MVC.
- Žádná formální podpora ověřování
- Zvýšená složitost a neefektivnost dat
- Obtížnost používání MVC s moderním uživatelským rozhraním
- Pro paralelní programování je potřeba více programátorů.
- Je nutná znalost více technologií.
- Údržba mnoha kódů v Controlleru
3-vrstva Architecture vs. MVC Architecture
| Parametr | 3-vrstva Architecture | MVC Architecture |
|---|---|---|
| Komunikace | Tento typ vzoru architektury nikdy nekomunikuje přímo s datovou vrstvou. | Všechny vrstvy komunikují přímo pomocí trojúhelníkové topologie. |
| Používání | 3vrstvé: široce používané ve webových aplikacích, kde klient, datové vrstvy a middleware běží na fyzicky oddělených platformách. | Obecně se používá v aplikacích, které běží na jedné grafické pracovní stanici. |


