MVC Archiszerkezet és keretrendszer példákkal
⚡ Okos összefoglaló
A Model-View-Controller (MVC) egy architekturális minta, amely egy alkalmazást három komponensre – Model, View és Controller – oszt szét, elkülönítve az üzleti logikát a megjelenítési rétegtől, hogy karbantartható, tesztelhető webes és asztali alkalmazásokat építhessen olyan keretrendszerek használatával, mint a Spring, a Django és a Laravel.

Mi az MVC Framework?
Az 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ákat 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
- Egy webes alkalmazásarchitektúra MVC mintát használó tervezéséhez teljes kontrollt biztosít a HTML és a URLs
- 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 SEO-barát útvonaltervezés URLs. Erőteljes URL-térképping érthető és kereshető legyen URLs
- A tesztvezérelt fejlesztés (TDD) támogatása
MVC Architectúra
Most, hogy az előnyök egyértelműek, í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
Nézzük meg részletesen mindegyik komponenst:
Kilátás
A nézet az alkalmazás azon része, amely az adatok megjelenítését reprezentálja.
A nézeteket a modelladatokból gyűjtött adatok hozzák létre. A nézet információkat kér a modelltől, hogy a kimeneti megjelenítést megjeleníthesse a felhasználó számára.
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 a felhasználói interakciót kezeli. A vezérlő értelmezi a felhasználó egér- és billentyűzetbeviteleit, és ennek megfelelően tájékoztatja a modellt és a nézetet a változtatásokról.
A vezérlő parancsokat küld a modellnek az állapotának frissítéséhez (pl. egy adott dokumentum mentése). A vezérlő parancsokat küld a hozzá tartozó nézetnek is 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.
Reagál a nézetek kéréseire, valamint a vezérlő utasításaira is, hogy frissítse magát. Ez a minta legalacsonyabb szintje is, amely az adatok karbantartásáért felelős.
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.
- Nézet: Felhasználói felület: (Vá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
- CodeGyújtó
- 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.
- A felelősségi körök tiszta szétválasztását biztosítja (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 minta logikai felépítést tesz lehetővéping a vezérlőn végrehajtott kapcsolódó műveletek együttes száma.
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 hasizom rétegeket vezet be.tracolyan feltételrendszer, amely megköveteli a felhasználóktól, hogy alkalmazkodjanak az MVC dekompozíciós 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. |


