MVC ArchiStruktur och ramverk med exempel

⚡ Smart sammanfattning

Model-View-Controller (MVC) är ett arkitekturmönster som delar upp en applikation i tre komponenter – Model, View och Controller – och isolerar affärslogik från presentationslagret för att bygga underhållbara, testbara webb- och skrivbordsapplikationer med hjälp av ramverk som Spring, Django och Laravel.

  • 🧱 Tre komponenter: MVC delar upp en applikation i Model (data), View (presentation) och Controller (användarinteraktion).
  • 🗄️ Artikelnummer : Lagrar data och affärslogik och svarar på förfrågningar från vyn och instruktioner från kontrollanten.
  • 🖼️ Se: Presenterar data för användaren via UI-element som textrutor, rullgardinsmenyer, diagram och tabeller.
  • 🎮 Kontroller: Tolkar användarinmatning och uppdaterar sedan modellen och vyn därefter.
  • ⚙️ Populära ramar: Spring MVC, Django, Ruby on Rails, CakePHP, Laravel och CodeIgniter implementerar MVC-mönstret.
  • ⚖️ Fördelar kontra nackdelar: MVC förbättrar testbarheten och parallell utveckling men lägger till abstractionslager och navigeringskomplexitet.

MVC ArchiStruktur och ramverk

Vad är MVC Framework?

Ocuco-landskapet 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
  • På senare tid har MVC-mönster använts flitigt i moderna webbapplikationer.

Funktioner hos MVC

  • Enkel och friktionsfri testbarhet. Mycket testbart, utdragbart och pluggbart ramverk
  • För att designa en webbapplikationsarkitektur med MVC-mönstret erbjuder det full kontroll över din HTML såväl som din URLs
  • 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änlig URLs. Kraftfull URL-Kartaping för begriplig och sökbar URLs
  • Stöd för testdriven utveckling (TDD)

MVC Architecture

Nu när fördelarna är tydliga, 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 titta på var och en av dessa komponenter i detalj:

Visa

En vy är den del av applikationen som representerar presentationen av data.

Vyer skapas av data som samlats in från modelldata. En vy begär att modellen ska 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

Styrenheten är den del av applikationen som hanterar användarinteraktionen. Styrenheten tolkar mus- och tangentbordsinmatningar från användaren och informerar modellen och vyn om att ändras efter behov.

En kontroller skickar kommandon till modellen för att uppdatera dess tillstånd (t.ex. spara ett specifikt dokument). Kontrollern skickar också kommandon till sin associerade vy för att ändra vyns presentation (till exempel att skrolla i 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 kontrollenheten att uppdatera sig själv. Det är också den lägsta nivån i mönstret som ansvarar för att underhå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.
  • Vy: 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 tydlig separation av problem (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 logiska grupperping av relaterade åtgärder på en kontrollant tillsammans.

Nackdelar med att använda MVC

  • Svårt att läsa, ändra, enhetstesta och återanvända denna modell
  • Ramverkets navigering kan vara lite komplicerad eftersom den introducerar nya lager av abstraction 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.

Vanliga frågor

MVC är ett arkitekturmönster, inte ett enkelt designmönster. Det organiserar en hel applikation i modell-, vy- och kontrolllager, och separerar data, presentation och användarinteraktionslogik.

MVC använder en Controller för att hantera indata och uppdatera modellen och vyn, medan MVVM använder en ViewModel med databindning. MVVM reducerar standardkraven och är vanligt förekommande i moderna UI-ramverk.

Använd MVC när du bygger applikationer som behöver tydlig separation av data, användargränssnitt och logik, särskilt webbappar som underhålls av större team. Det förbättrar testbarhet, parallell utveckling och SEO-vänlig routing.

AI-funktioner läggs vanligtvis till i modell- eller tjänstelagret i en MVC-applikation. Controllern skickar användarinmatning till AI-modeller, och vyn visar förutsägelser, rekommendationer eller genererat innehåll till användarna.

Ja. AI-kodningsassistenter kan bygga upp MVC-komponenter, generera kontroller, modeller och vyer samt föreslå routing. Utvecklare granskar fortfarande utdata för att säkerställa korrekt affärslogik och säkerhet.

Sammanfatta detta inlägg med: