MVC Framework oktatóanyag kezdőknek: Mi az, Architecture & példa
Mi az MVC Framework?
A Modell-View-Controller (MVC) A keretrendszer egy olyan építészeti minta, amely az alkalmazást három fő logikai összetevőre osztja: Modell, View és Controller. Innen ered az MVC rövidítés. Minden architektúra-összetevő úgy van kialakítva, hogy kezelje az alkalmazás speciális fejlesztési aspektusait. Az MVC elválasztja egymástól az üzleti logikát és a megjelenítési réteget. Hagyományosan asztali grafikus felhasználói felületekhez (GUI) használták. Napjainkban az MVC architektúra a webtechnológiában népszerűvé vált webes alkalmazások és mobilalkalmazások tervezésében.
Az MVC története
- Az MVC architektúrát először 1979-ben tárgyalta Trygve Reenskaug
- Az MVC modellt először 1987-ben mutatták be a Smalltalk programozási nyelven.
- Az MVC-t először egy 1988-as cikkben fogadták el általános fogalomként
- Az utóbbi időben az MVC mintát széles körben használják a modern webes alkalmazásokban
Az MVC jellemzői
- Könnyű és súrlódásmentes tesztelhetőség. Kiválóan tesztelhető, bővíthető és csatlakoztatható keretrendszer
- Az MVC-mintát használó webalkalmazás-architektúra megtervezéséhez teljes irányítást biztosít a HTML és az URL-címek felett
- Használja ki az ASP.NET, JSP, Django stb. által biztosított meglévő szolgáltatásokat.
- A logika egyértelmű szétválasztása: Modell, Nézet, Vezérlő. A pályázati feladatok szétválasztása pl. üzleti logika, Ul logika és bemeneti logika
- URL-útválasztás SEO-barát URL-ekhez. Hatékony URL-leképezés az érthető és kereshető URL-ekért
- A tesztvezérelt fejlesztés (TDD) támogatása
MVC Architectúra
Íme az MVC keretrendszer részletes architektúrája:
Az MVC három fontos összetevője:
- Modell: Tartalmazza az összes adatot és a kapcsolódó logikát
- Megtekintés: Adatok bemutatása a felhasználónak, vagy kezeli a felhasználói interakciót
- Vezérlő: Interfész a Model és a View komponensek között
Lássuk egymásnak ezt az összetevőt részletesen:
Kilátás
A nézet az alkalmazás azon része, amely az adatok megjelenítését reprezentálja.
A nézetek a modelladatokból gyűjtött adatokból jönnek létre. Egy nézet arra kéri a modellt, hogy adjon információt, hogy a kimeneti prezentációt mutassa be a felhasználónak.
A nézet a diagramokból, diagramokból és táblázatokból származó adatokat is megjeleníti. Például bármely ügyfélnézet tartalmazza az összes felhasználói felület összetevőt, például szövegdobozokat, legördülő listákat stb.
ellenőr
A vezérlő az alkalmazás azon része, amely kezeli a felhasználói interakciót. A vezérlő értelmezi a felhasználó egér és billentyűzet bemeneteit, tájékoztatva a modellt és a nézetet a megfelelő változtatásról.
A vezérlő parancsokat küld a modellnek, hogy frissítse állapotát (pl. egy adott dokumentum mentése). A vezérlő parancsokat is küld a hozzá tartozó nézetnek a nézet megjelenítésének megváltoztatásához (például egy adott dokumentum görgetése).
Modell
A modellkomponens adatokat és a kapcsolódó logikát tárolja. Olyan adatokat jelent, amelyeket a vezérlő összetevői vagy bármely más kapcsolódó üzleti logika között továbbítanak. Például egy Controller objektum lekéri az ügyféladatokat az adatbázisból. Az adatokat manipulálja, és visszaküldi az adatbázisba, vagy felhasználja ugyanazon adatok megjelenítésére.
Válaszol a nézetek kérésére, és válaszol a vezérlő utasításaira is, hogy frissítse magát. Ez egyben a minta legalacsonyabb szintje, amely felelős az adatok karbantartásáért.
MVC példák
Nézzük a Model View Controller példáját a mindennapi életből:
Példa 1
- Tegyük fel, hogy egy étterembe mész. Nem fogsz kimenni a konyhába és ételt készíteni, amit otthonodban biztosan megtehetsz. Ehelyett odamész, és megvárod, amíg a pincér bejön.
- Most jön hozzád a pincér, és megrendeled az ételt. A pincér nem tudja, ki vagy és mit akarsz, csak felírta az ételrendelésed részleteit.
- Aztán a pincér a konyhába megy. A konyhában a pincér nem készíti el az ételt.
- A szakács elkészíti az ételt. A pincér megkapja a megrendelését az asztalszámmal együtt.
- Főzzön, majd készítsen ételt Önnek. Az ételek elkészítéséhez alapanyagokat használ. Tegyük fel, hogy zöldséges szendvicset rendel. Aztán kell neki kenyér, paradicsom, burgonya, paprika, hagyma, falat, sajt stb., amit a hűtőből szerez be.
- Főzze meg az ételt a pincérnek. Most a pincér feladata, hogy ezt az ételt a konyhán kívülre vigye.
- Most a pincér tudja, hogy milyen ételeket rendelt és hogyan szolgálják fel őket.
Ebben az MVC architektúra példában
View= You Waiter= Controller Cook= Model Refrigerator= Data
Lássunk még egy MVC modell példát,
Példa 2
Az autóvezető mechanizmus egy másik példa az MVC modellre.
- Minden autó három fő részből áll.
- View= Felhasználói felület: (sebességváltó kar, panelek, kormánykerék, fék stb.)
- Vezérlő-mechanizmus (motor)
- Modell – Tárolás (benzin- vagy dízeltartály)
A motorról induló autó üzemanyagot vesz a tárolóból, de csak az említett felhasználói felülettel működik.
Népszerű MVC webes keretrendszerek
Íme néhány népszerű MVC keretrendszer listája:
- Ruby on Rails
- Django
- CakePHP
- Yii
- CherryPy
- Tavaszi MVC
- Katalizátor
- Rails
- Zend Framework
- CodeIgniter
- Laravel
- Üzemanyag PHP
- Symphony
Az MVC előnyei: Főbb előnyök
Íme az MVC architektúra használatának fő előnyei:
- Könnyű kódkarbantartás, amely könnyen bővíthető és bővíthető
- Az MVC Model komponens a felhasználótól függetlenül tesztelhető
- Könnyebb támogatás új típusú ügyfelek számára
- A különböző komponensek fejlesztése párhuzamosan is elvégezhető.
- Segít elkerülni a bonyolultságot azáltal, hogy egy alkalmazást három egységre oszt. Modell, nézet és vezérlő
- Csak egy Front Controller mintát használ, amely egyetlen vezérlőn keresztül dolgozza fel a webalkalmazás-kéréseket.
- A legjobb támogatást nyújtja tesztvezérelt fejlesztés
- Jól működik azoknál a webalkalmazásoknál, amelyeket webes tervezők és fejlesztők nagy csapatai támogatnak.
- Biztosítja az aggodalmak tiszta elkülönítését (SoC).
- Keresőoptimalizálás (SEO) barát.
- Minden osztály és objektum független egymástól, így külön is tesztelheti őket.
- Az MVC tervezési mintája lehetővé teszi a kapcsolódó műveletek logikai csoportosítását egy vezérlőn.
Az MVC használatának hátrányai
- Nehéz elolvasni, módosítani, tesztelni és újrafelhasználni ezt a modellt
- A keretrendszer navigációja időnként bonyolult lehet, mivel új absztrakciós rétegeket vezet be, ami megköveteli a felhasználóktól, hogy alkalmazkodjanak az MVC lebontási kritériumaihoz.
- Nincs formális érvényesítési támogatás
- Az adatok megnövekedett összetettsége és hatékonysága
- Az MVC használatának nehézségei a modern felhasználói felülettel
- A párhuzamos programozáshoz több programozóra van szükség.
- Több technológia ismerete szükséges.
- Sok kód karbantartása a vezérlőben
3-rétegű Architecture vs. MVC Architectúra
Vizsgált paraméter | 3-rétegű Architectúra | MVC Architectúra |
---|---|---|
Kommunikáció | Az ilyen típusú architektúra-minta soha nem kommunikál közvetlenül az adatréteggel. | Minden réteg közvetlenül kommunikál a háromszög topológiával. |
Használat | 3-szintű: széles körben használják webes alkalmazásokban, ahol az ügyfél, az adatrétegek és a köztes szoftver fizikailag különálló platformokon fut. | Általában olyan alkalmazásoknál használják, amelyek egyetlen grafikus munkaállomáson futnak. |
Összegzésként
- Az MVC egy olyan építészeti minta, amely az alkalmazást 1) modellre, 2) nézetre és 3) vezérlőre választja el.
- Modell: Tartalmazza az összes adatot és a kapcsolódó logikát
- Megtekintés: Adatok bemutatása a felhasználónak, vagy kezeli a felhasználói interakciót
- Vezérlő: Interfész a Model és a View komponensek között
- Az MVC architektúrát először 1979-ben tárgyalta Trygve Reenskaug
- MVC architektúra be Java egy rendkívül tesztelhető, bővíthető és csatlakoztatható keretrendszer
- Néhány népszerű MVC keretrendszer a Rails, Zend Framework, CodeIgniter, Laravel, Fuel PHP stb.