logo

MVC Framework Introduktion

Under de senaste åren har webbplatser skiftat från enkla HTML-sidor med lite CSS till otroligt komplexa applikationer med tusentals utvecklare som arbetar på dem samtidigt. För att arbeta med dessa komplexa webbapplikationer använder utvecklare olika designmönster för att lägga upp sina projekt, för att göra koden mindre komplex och lättare att arbeta med. Det mest populära av dessa mönster är MVC också känd som Model View Controller.

Vad är MVC?

De Model-View-Controller (MVC) ramverket är ett arkitektoniskt/designmönster som delar upp en applikation i tre logiska huvudkomponenter Modell , Se , och Kontroller . Varje arkitektonisk komponent är byggd för att hantera specifika utvecklingsaspekter av en applikation. Det isolerar affärslogiken och presentationslagret från varandra. Det användes traditionellt för skrivbordet grafiska användargränssnitt (GUI) . Nuförtiden är MVC ett av de mest använda industristandardiserade webbutvecklingsramverken för att skapa skalbara och utbyggbara projekt. Det används också för att designa mobilappar.



MVC skapades av Trygve Reenskaug . Huvudmålet med detta designmönster var att lösa problemet med användare som kontrollerar en stor och komplex datamängd genom att dela upp en stor applikation i specifika sektioner som alla har sitt eget syfte.

Funktioner hos MVC:

  • Det ger en tydlig åtskillnad av affärslogik, UI-logik och ingångslogik.
  • Det ger full kontroll över din HTML och webbadresser vilket gör det enkelt att designa webbapplikationsarkitektur.
  • Det är en kraftfull URL-mappningskomponent med vilken vi kan bygga applikationer som har begripliga och sökbara URL:er.
  • Det stödjer Testdriven utveckling (TDD).

För att veta mer om fördelarna med att använda MVC Framework, se artikeln – Fördelar med att använda MVC-ramverket

Komponenter i MVC:

MVC-ramverket innehåller följande tre komponenter:



  • Kontroller
  • Modell
  • Se

MVC arkitekturdesign

Kontroller:

Regulatorn är den komponent som möjliggör sammankopplingen mellan vyerna och modellen så att den fungerar som en mellanhand. Styrenheten behöver inte oroa sig för att hantera datalogik, den talar bara om för modellen vad den ska göra. Den behandlar all affärslogik och inkommande förfrågningar, manipulerar data med hjälp av Modell komponent och interagerar med Se för att återge den slutliga produktionen.

kärna java

Se:

De Se komponenten används för all UI-logik i applikationen. Det genererar ett användargränssnitt för användaren. Visningar skapas av data som samlas in av modellkomponenten, men dessa data tas inte direkt utan genom kontrollanten. Den interagerar bara med styrenheten.



Modell:

De Modell komponent motsvarar all datarelaterade logik som användaren arbetar med. Detta kan representera antingen data som överförs mellan View- och Controller-komponenterna eller någon annan affärslogikrelaterad data. Den kan lägga till eller hämta data från databasen. Den svarar på kontrollantens begäran eftersom kontrollanten inte kan interagera med databasen själv. Modellen interagerar med databasen och ger den nödvändiga informationen tillbaka till regulatorn.

Arbeta med MVC-ramverket med ett exempel:

Låt oss föreställa oss att en slutanvändare skickar en begäran till en server för att få en lista över elever som studerar i en klass. Servern skulle sedan skicka den begäran till just den kontrollenheten som hanterar studenter. Den kontrollanten skulle sedan begära att modellen som hanterar elever returnerar en lista över alla elever som studerar i en klass.

Dataflödet i MVC-komponenter

Modellen skulle fråga databasen efter listan över alla studenter och sedan returnera listan tillbaka till kontrollenheten. Om svaret från modellen var framgångsrikt skulle kontrollanten be vyn som är associerad med eleverna att returnera en presentation av listan över elever. Denna vy skulle ta listan över elever från kontrollenheten och göra listan till HTML som kan användas av webbläsaren.

Styrenheten skulle sedan ta den presentationen och returnera den till användaren. Därmed avslutas begäran. Om modellen tidigare returnerade ett fel, skulle styrenheten hantera det felet genom att be vyn som hanterar fel att göra en presentation för det specifika felet. Den felpresentationen skulle då returneras till användaren istället för elevlistans presentation.

Som vi kan se från exemplet ovan hanterar modellen all data. Vyn hanterar alla presentationer och kontrollenheten talar bara om för modellen och vad den ska göra. Detta är MVC-ramverkets grundläggande arkitektur och funktion.

MVC-arkitektoniska mönstret tillåter oss att följa följande designprinciper:
1. Söndra och erövra. De tre komponenterna kan utformas något oberoende av varandra.
2. Öka sammanhållningen. Komponenterna har starkare lagerkohesion än om vyn och kontrollern var tillsammans i ett enda UI-lager.
3. Minska kopplingen. Kommunikationskanalerna mellan de tre komponenterna är minimala och lätta att hitta.
4. Öka återanvändningen. Vyn och styrenheten använder normalt i stor utsträckning återanvändbara komponenter för olika typer av UI-kontroller. Användargränssnittet kommer dock att bli applikationsspecifikt, därför är det inte lätt att återanvända.
5. Design för flexibilitet. Det är vanligtvis ganska enkelt att ändra användargränssnittet genom att ändra vyn, styrenheten eller båda.

Fördelar med MVC:

  • Koder är lätta att underhålla och de kan enkelt utökas.
  • MVC modell komponent kan testas separat.
  • Komponenterna i MVC kan utvecklas samtidigt.
  • Det minskar komplexiteten genom att dela upp en applikation i tre enheter. Modell, vy och kontroller.
  • Det stödjer Testdriven utveckling (TDD).
  • Det fungerar bra för webbappar som stöds av stora team av webbdesigners och utvecklare.
  • Denna arkitektur hjälper till att testa komponenter oberoende eftersom alla klasser och objekt är oberoende av varandra
  • Sökmotoroptimering (SEO) Vänlig.

Nackdelar med MVC:

  • Det är svårt att läsa, ändra, testa och återanvända denna modell
  • Den är inte lämplig för att bygga små applikationer.
  • Ineffektiviteten av dataåtkomst i sikte.
  • Ramverkets navigering kan vara komplex eftersom den introducerar nya abstraktionslager som kräver att användarna anpassar sig till MVC:s nedbrytningskriterier.
  • Ökad komplexitet och ineffektivitet av data

Populära MVC-ramverk:

Några av de mest populära och flitigt använda MVC-ramverken listas nedan.

vyer och tabeller
  • Ruby on Rails
  • Django
  • CherryPy
  • Fjäder MVC
  • Katalysator
  • Räls
  • Zend Framework
  • Bränsle PHP
  • Laravel
  • Symfoni

MVC används vanligtvis på applikationer som körs på en enda grafisk arbetsstation. Uppdelningen av logiska komponenter möjliggör läsbarhet och modularitet samt gör det bekvämare för testdelen.