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.

  • 🧱 Három összetevő: Az MVC az alkalmazásokat modellre (adatok), nézetre (megjelenítés) és vezérlőre (felhasználói interakció) osztja.
  • 🗄️ Modell: Adatokat és üzleti logikát tárol, válaszol a Nézet kéréseire és a Vezérlő utasításaira.
  • 🖼️ Kilátás: Felhasználói felület elemein, például szövegdobozokon, legördülő menükön, diagramokon és táblázatokon keresztül jeleníti meg az adatokat a felhasználónak.
  • 🎮 Vezérlő: Értelmezi a felhasználói bevitelt, majd ennek megfelelően frissíti a modellt és a nézetet.
  • 🇧🇷 Népszerű keretek: Spring MVC, Django, Ruby on Rails, CakePHP, Laravel és CodeAz Igniter implementálja az MVC mintát.
  • 🇧🇷 Előnyök vs. Hátrányok: Az MVC javítja a tesztelhetőséget és a párhuzamos fejlesztést, de növeli a hasizmokattracrétegek és a navigáció bonyolultsága.

MVC Archiszerkezet és keretrendszer

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:

MVC Architectúra
MVC Architecture diagram

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

MVC példák

  • 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

MVC példák

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:

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.

GYIK

Az MVC egy architektúrális minta, nem pedig egy egyszerű tervezési minta. Egy teljes alkalmazást modell, nézet és vezérlő rétegekre szervez, elkülönítve az adatokat, a megjelenítést és a felhasználói interakciós logikát.

Az MVC egy vezérlőt használ a bemenet kezelésére és a modell és a nézet frissítésére, míg az MVVM egy nézetmodellt használ adatkötéssel. Az MVVM csökkenti a sablonos megoldásokat, és gyakori a modern felhasználói felület keretrendszereiben.

Használj MVC-t olyan alkalmazások fejlesztésekor, amelyekhez egyértelmű elkülönítésre van szükség az adatok, a felhasználói felület és a logika számára, különösen nagyobb csapatok által karbantartott webalkalmazások esetén. Javítja a tesztelhetőséget, a párhuzamos fejlesztést és a SEO-barát útvonaltervezést.

A mesterséges intelligencia funkcióit általában az MVC alkalmazások modell- vagy szolgáltatásrétegében adják hozzá. A vezérlő felhasználói bemenetet továbbít a mesterséges intelligencia modelleknek, a nézet pedig előrejelzéseket, ajánlásokat vagy generált tartalmat jelenít meg a felhasználóknak.

Igen. A mesterséges intelligencia által fejlesztett kódolóasszisztensek képesek MVC-komponenseket scaffolálni, vezérlőket, modelleket és nézeteket generálni, valamint útvonaltervezést javasolni. A fejlesztők továbbra is ellenőrzik a kimenetet a helyes üzleti logika és biztonság biztosítása érdekében.

Foglald össze ezt a bejegyzést a következőképpen: