MVC ArchiTekstur og rammeværk med eksempler
⚡ Smart opsummering
Model-View-Controller (MVC) er et arkitektonisk mønster, der opdeler en applikation i tre komponenter – Model, View og Controller – og isolerer forretningslogik fra præsentationslaget for at bygge vedligeholdelige, testbare web- og desktopapplikationer ved hjælp af frameworks som Spring, Django og Laravel.

Hvad er MVC Framework?
Model-View-Controller (MVC) framework er et arkitektonisk mønster, der adskiller en applikation i tre logiske hovedkomponenter Model, View og Controller. Deraf forkortelsen MVC. Hver arkitekturkomponent er bygget til at håndtere specifikke udviklingsaspekter af en applikation. MVC adskiller forretningslogikken og præsentationslaget fra hinanden. Det blev traditionelt brugt til desktop grafiske brugergrænseflader (GUI'er). I dag er MVC-arkitektur inden for webteknologi blevet populær til at designe webapplikationer såvel som mobile apps.
Historien om MVC
- MVC-arkitektur blev første gang diskuteret i 1979 af Trygve Reenskaug
- MVC-modellen blev først introduceret i 1987 i programmeringssproget Smalltalk.
- MVC blev første gang accepteret som et generelt koncept i en artikel fra 1988
- I den seneste tid er MVC-mønster blevet meget brugt i moderne webapplikationer.
Funktioner af MVC
- Nem og friktionsfri testbarhed. Meget testbar, udvidelsesbar og pluggbar ramme
- For at designe en webapplikationsarkitektur ved hjælp af MVC-mønsteret, giver det fuld kontrol over din HTML såvel som din URLs
- Udnyt eksisterende funktioner leveret af ASP.NET, JSP, Django osv.
- Klar adskillelse af logik: Model, View, Controller. Adskillelse af ansøgningsopgaver, dvs. forretningslogik, Ul-logik og inputlogik
- URL Routing for SEO-venlig URLs. Kraftfuld URL-kortping for forståelig og søgbar URLs
- Understøtter testdrevet udvikling (TDD)
MVC Architecture
Nu hvor fordelene er klare, er her den detaljerede arkitektur af MVC-frameworket:

Tre vigtige MVC-komponenter er:
- Model: Den inkluderer alle data og dens relaterede logik
- Visning: Præsenter data for brugeren eller håndterer brugerinteraktion
- Controller: En grænseflade mellem Model- og View-komponenter
Lad os se nærmere på hver af disse komponenter:
Se
En visning er den del af applikationen, der repræsenterer præsentationen af data.
Visninger oprettes ud fra data indsamlet fra modeldataene. En visning anmoder modellen om at give oplysninger, så den præsenterer outputpræsentationen for brugeren.
Visningen repræsenterer også data fra diagrammer, diagrammer og tabeller. For eksempel vil enhver kundevisning inkludere alle brugergrænsefladekomponenter som tekstbokse, rullemenuer osv.
controller
Controlleren er den del af applikationen, der håndterer brugerinteraktionen. Controlleren fortolker mus- og tastaturinput fra brugeren og informerer modellen og visningen om at ændre den efter behov.
En controller sender kommandoer til modellen for at opdatere dens tilstand (f.eks. gemme et specifikt dokument). Controlleren sender også kommandoer til den tilknyttede visning for at ændre visningens præsentation (f.eks. rulle gennem et bestemt dokument).
Model
Modelkomponenten gemmer data og dens relaterede logik. Det repræsenterer data, der overføres mellem controllerkomponenter eller enhver anden relateret forretningslogik. For eksempel vil et Controller-objekt hente kundeoplysningerne fra databasen. Den manipulerer data og sender tilbage til databasen eller bruger den til at gengive de samme data.
Den reagerer på anmodninger fra visningerne og også på instruktioner fra controlleren om at opdatere sig selv. Det er også det laveste niveau i mønsteret, som er ansvarlig for at vedligeholde data.
MVC eksempler
Lad os se et eksempel på Model View Controller fra dagligdagen:
Eksempel 1
- Lad os antage, at du går på restaurant. Du vil ikke gå i køkkenet og tilberede mad, som du helt sikkert kan lave hjemme hos dig. I stedet går du derhen og venter på, at tjeneren kommer på.
- Nu kommer tjeneren til dig, og du bestiller maden. Tjeneren ved ikke, hvem du er, og hvad du vil have, han skrev bare detaljerne i din madbestilling ned.
- Så går tjeneren ud i køkkenet. I køkkenet tilbereder tjeneren ikke din mad.
- Kokken tilbereder din mad. Tjeneren får din ordre til ham sammen med dit bordnummer.
- Tilbered derefter mad til dig. Han bruger ingredienser til at lave maden. Lad os antage, at du bestiller en grøntsagssandwich. Så har han brug for brød, tomat, kartoffel, paprika, løg, bit, ost osv. som han henter fra køleskabet
- Kog den sidste overrækkelse af maden til tjeneren. Nu er det tjenerens opgave at flytte denne mad uden for køkkenet.
- Nu ved tjeneren, hvilken mad du har bestilt, og hvordan de serveres.
I dette MVC-arkitektureksempel,
View= You Waiter= Controller Cook= Model Refrigerator= Data
Lad os se endnu et eksempel på en MVC-model,
Eksempel 2
Bilkørselsmekanisme er et andet eksempel på MVC-modellen.
- Hver bil består af tre hoveddele.
- Visning: Brugergrænseflade: (Gearstang, paneler, rat, bremse osv.)
- Controller- Mekanisme (motor)
- Model- Opbevaring (benzin- eller dieseltank)
Bilen kører fra motoren tager brændstof fra lageret, men den kører kun ved at bruge de nævnte brugergrænsefladeenheder.
Populære MVC-webrammer
Her er en liste over nogle populære MVC-frameworks:
- Ruby on Rails
- Django
- CakePHP
- Yii
- CherryPy
- Forår MVC
- Katalysator
- Skinner
- Zend Framework
- Codetændsats
- Laravel
- Brændstof PHP
- Symphony
Fordele ved MVC: Vigtige fordele
Her er de store fordele ved at bruge MVC-arkitektur:
- Nem kodevedligeholdelse, som er nem at udvide og dyrke
- MVC Model komponent kan testes separat fra brugeren
- Lettere support til nye typer klienter
- Udvikling af de forskellige komponenter kan udføres parallelt.
- Det hjælper dig med at undgå kompleksitet ved at opdele en ansøgning i de tre enheder. Model, visning og controller
- Den bruger kun et Front Controller-mønster, som behandler webapplikationsanmodninger gennem en enkelt controller.
- Tilbyder den bedste støtte til testdrevet udvikling
- Det fungerer godt for webapps, som understøttes af store teams af webdesignere og udviklere.
- Giver ren adskillelse af bekymringer (SoC).
- Søgemaskineoptimering (SEO) venlig.
- Alle klasser og objekter er uafhængige af hinanden, så du kan teste dem separat.
- MVC-designmønster tillader logiske grupperingerping af relaterede handlinger på en controller sammen.
Ulemper ved at bruge MVC
- Svært at læse, ændre, enhedsteste og genbruge denne model
- Navigationen i rammeværket kan til tider være kompleks, da den introducerer nye lag af abstraction, som kræver, at brugerne tilpasser sig dekomponeringskriterierne for MVC.
- Ingen formel valideringsstøtte
- Øget kompleksitet og ineffektivitet af data
- Vanskeligheden ved at bruge MVC med den moderne brugergrænseflade
- Der er behov for flere programmører til at udføre parallel programmering.
- Kendskab til flere teknologier er påkrævet.
- Vedligeholdelse af masser af koder i Controller
3-lags Architecture vs. MVC Architecture
| Parameter | 3-Tier Architecture | MVC Architecture |
|---|---|---|
| Kommunikation | Denne type arkitekturmønster kommunikerer aldrig direkte med datalaget. | Alle lag kommunikerer direkte ved hjælp af trekanttopologi. |
| Brug | 3-tier: Udbredt i webapplikationer, hvor klienten, datalagene og middleware kører på fysisk adskilte platforme. | Anvendes generelt på applikationer, der kører på en enkelt grafisk arbejdsstation. |


