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.

  • 🧱 Tři složky: MVC dělí aplikaci na Model (data), View (prezentace) a Controller (interakce s uživatelem).
  • 🗄️ Model: Ukládá data a obchodní logiku a reaguje na požadavky z pohledu (View) a instrukce z kontroleru (Controller).
  • Pohled: Prezentuje data uživateli prostřednictvím prvků uživatelského rozhraní, jako jsou textová pole, rozbalovací nabídky, grafy a tabulky.
  • 🎮 Ovladač: Interpretuje uživatelský vstup a poté podle něj aktualizuje model a zobrazení.
  • ⚙️ Oblíbené frameworky: Spring MVC, Django, Ruby on Rails, CakePHP, Laravel a CodeIgniter implementuje vzor MVC.
  • 🇧🇷 Výhody vs. nevýhody: MVC zlepšuje testovatelnost a paralelní vývoj, ale přidává absencitracvrstvy a složitost navigace.

MVC Architextura a rámec

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:

MVC Architecture
MVC Architecture Diagram

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říklady MVC

  • 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

Příklady MVC

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ů:

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.

Nejčastější dotazy

MVC je architektonický vzor, ​​nikoli jednoduchý návrhový vzor. Organizuje celou aplikaci do vrstev Model, View a Controller, čímž odděluje data, prezentaci a logiku interakce s uživatelem.

MVC používá Controller pro zpracování vstupu a aktualizaci Modelu a Viewu, zatímco MVVM používá ViewModel s datovou vazbou. MVVM redukuje standardizované prvky a je běžný v moderních UI frameworkech.

Používejte MVC při vytváření aplikací, které vyžadují jasné oddělení dat, uživatelského rozhraní a logiky, zejména webových aplikací spravovaných většími týmy. Zlepšuje testovatelnost, paralelní vývoj a směrování optimalizované pro vyhledávače.

Funkce AI se obvykle přidávají do vrstvy modelu nebo služby aplikace MVC. Controller předává uživatelský vstup modelům AI a View zobrazuje uživatelům predikce, doporučení nebo generovaný obsah.

Ano. Asistenti pro kódování s umělou inteligencí mohou vytvářet MVC komponenty, generovat kontrolery, modely a pohledy a navrhovat směrování. Vývojáři stále kontrolují výstup, aby zajistili správnou obchodní logiku a bezpečnost.

Shrňte tento příspěvek takto: