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:

MVC Architecture
MVC ArchiTecture Diagram

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

MVC-exempel

  • 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

MVC-exempel

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:

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.