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.

  • 🧱 Tre komponenter: MVC opdeler en applikation i Model (data), View (præsentation) og Controller (brugerinteraktion).
  • 🗄️ Model: Gemmer data og forretningslogik og reagerer på anmodninger fra View'en og instruktioner fra Controlleren.
  • Udsigt: Præsenterer data for brugeren via brugergrænsefladeelementer såsom tekstbokse, rullemenuer, diagrammer og tabeller.
  • 🎮 controller: Fortolker brugerinput og opdaterer derefter modellen og visningen i overensstemmelse hermed.
  • 🇧🇷 Populære rammer: Spring MVC, Django, Ruby on Rails, CakePHP, Laravel og CodeIgniter implementerer MVC-mønsteret.
  • ⚖️ Fordele vs. ulemper: MVC forbedrer testbarhed og parallel udvikling, men tilføjer abstractionslag og navigationskompleksitet.

MVC ArchiTekstur og rammeværk

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:

MVC Architecture
MVC Architecture diagram

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

MVC eksempler

  • 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

MVC eksempler

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:

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.

Ofte Stillede Spørgsmål

MVC er et arkitektonisk mønster, ikke et simpelt designmønster. Det organiserer en hel applikation i Model-, View- og Controller-lag, der adskiller data, præsentation og brugerinteraktionslogik.

MVC bruger en controller til at håndtere input og opdatere modellen og visningen, mens MVVM bruger en ViewModel med databinding. MVVM reducerer standardteksten og er almindelig i moderne brugergrænsefladeframeworks.

Brug MVC, når du bygger applikationer, der kræver klar adskillelse af data, brugergrænseflade og logik, især webapps, der vedligeholdes af større teams. Det forbedrer testbarhed, parallel udvikling og SEO-venlig routing.

AI-funktioner tilføjes normalt i model- eller servicelaget i en MVC-applikation. Controlleren sender brugerinput til AI-modeller, og View viser forudsigelser, anbefalinger eller genereret indhold til brugerne.

Ja. AI-kodningsassistenter kan scaffolde MVC-komponenter, generere controllere, modeller og views og foreslå routing. Udviklere gennemgår stadig outputtet for at sikre korrekt forretningslogik og sikkerhed.

Opsummer dette indlæg med: