MVC Framework Tutorial för nybörjare: Vad är, ArchiTecture & Exempel
Vad är MVC Framework?
Smakämnen Model-View-Controller (MVC) ramverket är ett arkitektoniskt mönster som delar upp en applikation i tre logiska huvudkomponenter Model, View och Controller. Därav förkortningen MVC. Varje arkitekturkomponent är byggd för att hantera specifika utvecklingsaspekter av en applikation. MVC separerar affärslogik och presentationslager från varandra. Det användes traditionellt för skrivbordsgrafiska användargränssnitt (GUI). Nuförtiden har MVC-arkitektur inom webbteknik blivit populär för att designa webbapplikationer såväl som mobilappar.
Historien om MVC
- MVC-arkitektur diskuterades första gången 1979 av Trygve Reenskaug
- MVC-modellen introducerades först 1987 i programmeringsspråket Smalltalk.
- MVC accepterades första gången som ett allmänt koncept, i en artikel från 1988
- Under den senaste tiden har MVC-mönster ofta använts i moderna webbapplikationer
Funktioner hos MVC
- Enkel och friktionsfri testbarhet. Mycket testbart, utdragbart och pluggbart ramverk
- För att designa en webbapplikationsarkitektur med hjälp av MVC-mönstret erbjuder den full kontroll över din HTML såväl som dina webbadresser
- Utnyttja befintliga funktioner som tillhandahålls av ASP.NET, JSP, Django, etc.
- Tydlig separation av logik: Modell, View, Controller. Separation av applikationsuppgifter, dvs. affärslogik, Ul-logik och ingångslogik
- URL-routing för SEO-vänliga webbadresser. Kraftfull URL-mappning för begripliga och sökbara webbadresser
- Stöd för testdriven utveckling (TDD)
MVC Architecture
Här är den detaljerade arkitekturen för MVC-ramverket:
Tre viktiga MVC-komponenter är:
- Modell: Den inkluderar all data och dess relaterade logik
- Visa: Presentera data för användaren eller hanterar användarinteraktion
- Controller: Ett gränssnitt mellan Model- och View-komponenter
Låt oss se varandra den här komponenten i detalj:
Visa
En vy är den del av applikationen som representerar presentationen av data.
Vyer skapas av data som samlas in från modelldata. En vy ber modellen att ge information så att den presenterar utdatapresentationen för användaren.
Vyn representerar också data från diagram, diagram och tabeller. Till exempel kommer alla kundvyer att inkludera alla UI-komponenter som textrutor, rullgardinsmenyer etc.
Regulator
Controllern är den del av applikationen som hanterar användarinteraktionen. Styrenheten tolkar mus- och tangentbordsingångarna från användaren, informerar modellen och vyn för att ändras efter behov.
En styrenhet skickar kommandon till modellen för att uppdatera dess tillstånd (t.ex. att spara ett specifikt dokument). Styrenheten skickar också kommandon till sin associerade vy för att ändra vyns presentation (till exempel rullning av ett visst dokument).
Modell
Modellkomponenten lagrar data och dess tillhörande logik. Det representerar data som överförs mellan kontrollerkomponenter eller någon annan relaterad affärslogik. Till exempel kommer ett Controller-objekt att hämta kundinformationen från databasen. Den manipulerar data och skickar tillbaka till databasen eller använder den för att återge samma data.
Den svarar på begäran från vyerna och svarar även på instruktioner från styrenheten att uppdatera sig själv. Det är också den lägsta nivån i mönstret som är ansvarig för att upprätthålla data.
MVC-exempel
Låt oss se Model View Controller-exempel från det dagliga livet:
Exempelvis 1
- Låt oss anta att du går till en restaurang. Du kommer inte gå till köket och laga mat som du säkert kan göra hemma hos dig. Istället går du dit och väntar på att servitören ska komma på.
- Nu kommer servitören till dig, och du beställer maten. Servitören vet inte vem du är och vad du vill ha han skrev bara ner detaljerna i din matbeställning.
- Sedan går servitören till köket. I köket förbereder inte servitören din mat.
- Kocken lagar din mat. Servitören får din beställning till honom tillsammans med ditt bordsnummer.
- Laga sedan laga mat åt dig. Han använder ingredienser för att laga maten. Låt oss anta att du beställer en grönsakssmörgås. Sedan behöver han bröd, tomat, potatis, paprika, lök, bit, ost etc. som han hämtar från kylskåpet
- Laga sista överlämnandet av maten till servitören. Nu är det servitörens uppgift att flytta denna mat utanför köket.
- Nu vet servitören vilken mat du har beställt och hur den serveras.
I detta MVC-arkitekturexempel,
View= You Waiter= Controller Cook= Model Refrigerator= Data
Låt oss se ytterligare ett exempel på MVC-modell,
Exempelvis 2
Bilkörningsmekanism är ett annat exempel på MVC-modellen.
- Varje bil består av tre huvuddelar.
- Visa= Användargränssnitt: (växelspak, paneler, ratt, broms, etc.)
- Styrenhet - Mekanism (motor)
- Modell- Förvaring (bensin eller dieseltank)
Bilen körs från motorn tar bränsle från lagringen, men den körs endast med hjälp av nämnda användargränssnittsenheter.
Populära MVC-webbramverk
Här är en lista över några populära MVC-ramverk:
- Ruby on Rails
- Django
- CakePHP
- Yii
- cherrypy
- Vår MVC
- Katalysator
- Skenor
- Zend Framework
- CodeIgniter
- laravel
- Bränsle PHP
- Symphony
Fördelar med MVC: Viktiga fördelar
Här är de stora fördelarna med att använda MVC-arkitektur:
- Enkelt kodunderhåll som är lätt att utöka och odla
- MVC-modellkomponent kan testas separat från användaren
- Enklare support för nya typer av klienter
- Utveckling av de olika komponenterna kan ske parallellt.
- Det hjälper dig att undvika komplexitet genom att dela upp en applikation i tre enheter. Modell, vy och kontroller
- Den använder bara ett Front Controller-mönster som bearbetar webbapplikationsförfrågningar genom en enda controller.
- Erbjuder det bästa stödet för testdriven utveckling
- Det fungerar bra för webbappar som stöds av stora team av webbdesigners och utvecklare.
- Ger ren separation av bekymmer (SoC).
- Sökmotoroptimering (SEO) vänlig.
- Alla klasser och objekt är oberoende av varandra så att du kan testa dem separat.
- MVC-designmönster tillåter logisk gruppering av relaterade åtgärder på en styrenhet tillsammans.
Nackdelar med att använda MVC
- Svårt att läsa, ändra, enhetstesta och återanvända denna modell
- Ramverkets navigering kan ibland vara komplex eftersom den introducerar nya abstraktionslager som kräver att användare anpassar sig till MVC:s nedbrytningskriterier.
- Inget formellt valideringsstöd
- Ökad komplexitet och ineffektivitet av data
- Svårigheten att använda MVC med det moderna användargränssnittet
- Det finns ett behov av flera programmerare för att utföra parallell programmering.
- Kunskaper om flera tekniker krävs.
- Underhåll av massor av koder i Controller
3-tier Architecture vs. MVC Architecture
Parameter | 3-Tier Architecture | MVC Architecture |
---|---|---|
Kommunikation | Denna typ av arkitekturmönster kommunicerar aldrig direkt med datalagret. | Alla lager kommunicerar direkt med hjälp av triangeltopologi. |
Användning | 3-tier: används ofta i webbapplikationer där klienten, datanivåer och mellanprogram körs på fysiskt separata plattformar. | Används vanligtvis på applikationer som körs på en enda grafisk arbetsstation. |
Sammanfattning
- MVC är ett arkitektoniskt mönster som delar upp en applikation i 1) Modell, 2) View och 3) Controller
- Modell: Den inkluderar all data och dess relaterade logik
- Visa: Presentera data för användaren eller hanterar användarinteraktion
- Controller: Ett gränssnitt mellan Model- och View-komponenter
- MVC-arkitektur diskuterades första gången 1979 av Trygve Reenskaug
- MVC-arkitektur i Java är ett mycket testbart, utbyggbart och pluggbart ramverk
- Några populära MVC-ramverk är Rails, Zend Framework, CodeIgniter, Laravel, Fuel PHP, etc.