Výukový program MVC Framework pro začátečníky: Co je, Architecture & Příklad
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ě je vzor MVC široce používán v moderních webových aplikacích
Vlastnosti MVC
- Snadná testovatelnost bez tření. Vysoce testovatelný, rozšiřitelný a připojitelný rámec
- Chcete-li navrhnout architekturu webové aplikace pomocí vzoru MVC, nabízí plnou kontrolu nad vaším HTML a také vašimi URL
- 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
- Směrování URL pro adresy URL přátelské k SEO. Výkonné mapování URL pro srozumitelné a prohledávatelné adresy URL
- Podporuje vývoj řízený testem (TDD)
MVC Architecture
Zde je podrobná architektura rámce MVC:
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
Podívejme se na tuto součást podrobně:
Zobrazit
Pohled je ta část aplikace, která představuje prezentaci dat.
Pohledy jsou vytvářeny daty shromážděnými z dat modelu. Pohled požaduje, aby model poskytl informace, aby mohl uživateli předložit 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
Řadič je ta část aplikace, která zpracovává interakci uživatele. Ovladač interpretuje vstupy z myši a klávesnice od uživatele a podle potřeby informuje o modelu a pohledu.
Řídicí jednotka odesílá příkazy modelu k aktualizaci jeho stavu (např. uložení konkrétního dokumentu). Ovladač také odesílá příkazy do přidruženého pohledu, aby změnil prezentaci pohledu (například posouvání určité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žadavek z pohledů a také reaguje na pokyny z ovladače, aby se sám aktualizoval. Je to také nejnižší úroveň vzoru, která je zodpovědná za udržová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
- CodeIgniter
- 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 čisté oddělení obav (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é seskupování souvisejících akcí na ovladač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 může být časově složitá, protože zavádí nové vrstvy abstrakce, což vyžaduje, aby se uživatelé přizpůsobili kritériím rozkladu 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. |
Shrnutí
- MVC je architektonický vzor, který rozděluje aplikaci na 1) model, 2) pohled a 3) kontrolér
- 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
- Architektura MVC byla poprvé diskutována v roce 1979 Trygve Reenskaugem
- Architektura MVC v Java je vysoce testovatelný, rozšiřitelný a připojitelný framework
- Některé populární rámce MVC jsou Rails, Zend Framework, CodeIgniter, Laravel, Fuel PHP atd.