MVC Framework Tutorial for begyndere: Hvad er, ArchiTecture & Eksempel
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 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 den fuld kontrol over din HTML såvel som dine URL'er
- 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 til SEO-venlige URL'er. Kraftig URL-mapping til forståelige og søgbare URL'er
- Understøtter testdrevet udvikling (TDD)
MVC Architecture
Her er den detaljerede arkitektur af MVC framework:
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 hinanden denne komponent i detaljer:
Specifikation
En visning er den del af applikationen, der repræsenterer præsentationen af data.
Visninger skabes af de data, der er indsamlet fra modeldataene. En visning anmoder modellen om at give information, 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 musen og tastaturets input fra brugeren, informerer modellen og visningen til at ændre sig efter behov.
En controller sender kommandoer til modellen for at opdatere dens tilstand (f.eks. lagring af et specifikt dokument). Controlleren sender også kommandoer til dens tilknyttede visning for at ændre visningens præsentation (For eksempel at rulle 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å anmodningen fra visningerne og reagerer også på instruktioner fra controlleren om at opdatere sig selv. Det er også det laveste niveau af 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.
- Vis = 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
- CodeIgniter
- 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 logisk gruppering af relaterede handlinger på en controller sammen.
Ulemper ved at bruge MVC
- Svært at læse, ændre, enhedsteste og genbruge denne model
- Frameworknavigationen kan til tider kompliceret, da den introducerer nye lag af abstraktion, 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. |
Resumé
- MVC er et arkitektonisk mønster, der adskiller en applikation i 1) Model, 2) View og 3) Controller
- 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
- MVC-arkitektur blev første gang diskuteret i 1979 af Trygve Reenskaug
- MVC-arkitektur i Java er en meget testbar, udvidelsesbar og pluggbar ramme
- Nogle populære MVC-frameworks er Rails, Zend Framework, CodeIgniter, Laravel, Fuel PHP osv.