MVC ArchiTekstur og rammeverk med eksempler

โšก Smart oppsummering

Model-View-Controller (MVC) er et arkitekturmรธnster som deler en applikasjon inn i tre komponenter โ€“ Model, View og Controller โ€“ og isolerer forretningslogikk fra presentasjonslaget for รฅ bygge vedlikeholdbare, testbare web- og skrivebordsapplikasjoner ved hjelp av rammeverk som Spring, Django og Laravel.

  • ๐Ÿงฑ Tre komponenter: MVC deler en applikasjon inn i Model (data), View (presentasjon) og Controller (brukerinteraksjon).
  • ๐Ÿ—„๏ธ Modell: Lagrer data og forretningslogikk, og svarer pรฅ forespรธrsler fra visningen og instruksjoner fra kontrolleren.
  • ๐Ÿ–ผ๏ธ Utsikt: Presenterer data for brukeren gjennom UI-elementer som tekstbokser, rullegardinmenyer, diagrammer og tabeller.
  • ๐ŸŽฎ Controller: Tolker brukerinndata, og oppdaterer deretter modellen og visningen deretter.
  • โš™๏ธ Populรฆre rammer: Spring MVC, Django, Ruby on Rails, CakePHP, Laravel og CodeIgniter implementerer MVC-mรธnsteret.
  • ๐Ÿ‡ง๐Ÿ‡ท Fordeler vs. ulemper: MVC forbedrer testbarhet og parallell utvikling, men legger til abstracsjonslag og navigasjonskompleksitet.

MVC ArchiTekstur og rammeverk

Hva er MVC Framework?

Ocuco Model-View-Controller (MVC) rammeverket er et arkitektonisk mรธnster som deler en applikasjon i tre logiske hovedkomponenter Model, View og Controller. Derav forkortelsen MVC. Hver arkitekturkomponent er bygget for รฅ hรฅndtere spesifikke utviklingsaspekter ved en applikasjon. MVC skiller forretningslogikken og presentasjonslaget fra hverandre. Det ble tradisjonelt brukt for skrivebordsgrafiske brukergrensesnitt (GUIer). I dag har MVC-arkitektur innen nettteknologi blitt populรฆr for รฅ designe webapplikasjoner sรฅ vel som mobilapper.

Historien om MVC

  • MVC-arkitektur ble fรธrst diskutert i 1979 av Trygve Reenskaug
  • MVC-modellen ble fรธrst introdusert i 1987 i programmeringssprรฅket Smalltalk.
  • MVC ble fรธrste gang akseptert som et generelt konsept, i en artikkel fra 1988
  • I den senere tid er MVC-mรธnsteret mye brukt i moderne webapplikasjoner.

Funksjoner av MVC

  • Enkel og friksjonsfri testbarhet. Svรฆrt testbart, utvidbart og pluggbart rammeverk
  • For รฅ designe en webapplikasjonsarkitektur ved hjelp av MVC-mรธnsteret, gir det full kontroll over HTML-koden din sรฅ vel som din URLs
  • Utnytt eksisterende funksjoner levert av ASP.NET, JSP, Django, etc.
  • Tydelig separasjon av logikk: Modell, View, Controller. Separasjon av sรธknadsoppgaver, dvs. forretningslogikk, Ul-logikk og inngangslogikk
  • URL Ruting for SEO-vennlighet URLs. Kraftig URL-kartping for forstรฅelig og sรธkbar URLs
  • Stรธtter for testdrevet utvikling (TDD)

MVC Architecture

Nรฅ som fordelene er klare, er her den detaljerte arkitekturen til MVC-rammeverket:

MVC Architecture
MVC ArchiTecture Diagram

Tre viktige MVC-komponenter er:

  • Modell: Den inkluderer alle dataene og tilhรธrende logikk
  • Vis: Presenter data for brukeren eller hรฅndterer brukerinteraksjon
  • Kontroller: Et grensesnitt mellom Model- og View-komponenter

La oss se nรฆrmere pรฅ hver av disse komponentene:

Se

En visning er den delen av applikasjonen som representerer presentasjonen av data.

Visninger opprettes av dataene som er samlet inn fra modelldataene. En visning ber modellen om รฅ gi informasjon slik at den presenterer utdataene for brukeren.

Visningen representerer ogsรฅ dataene fra diagrammer, diagrammer og tabeller. For eksempel vil enhver kundevisning inkludere alle UI-komponentene som tekstbokser, rullegardinmenyer osv.

controller

Kontrolleren er den delen av applikasjonen som hรฅndterer brukerinteraksjonen. Kontrolleren tolker mus- og tastaturinndataene fra brukeren, og informerer modellen og visningen om รฅ endres etter behov.

En kontroller sender kommandoer til modellen for รฅ oppdatere tilstanden (f.eks. lagre et bestemt dokument). Kontrolleren sender ogsรฅ kommandoer til den tilknyttede visningen for รฅ endre visningens presentasjon (for eksempel bla i et bestemt dokument).

Modell

Modellkomponenten lagrer data og tilhรธrende logikk. Det representerer data som overfรธres mellom kontrollerkomponenter eller annen relatert forretningslogikk. For eksempel vil et Controller-objekt hente kundeinformasjonen fra databasen. Den manipulerer data og sender tilbake til databasen eller bruker den til รฅ gjengi de samme dataene.

Den svarer pรฅ forespรธrsler fra visningene og svarer ogsรฅ pรฅ instruksjoner fra kontrolleren om รฅ oppdatere seg selv. Det er ogsรฅ det laveste nivรฅet i mรธnsteret som er ansvarlig for รฅ vedlikeholde data.

MVC-eksempler

La oss se Model View Controller eksempel fra dagliglivet:

Eksempel 1

MVC-eksempler

  • La oss anta at du gรฅr pรฅ restaurant. Du vil ikke gรฅ pรฅ kjรธkkenet og lage mat som du sikkert kan gjรธre hjemme hos deg. I stedet gรฅr du dit og venter pรฅ at servitรธren skal komme.
  • Nรฅ kommer servitรธren til deg, og du bestiller maten. Servitรธren vet ikke hvem du er og hva du vil ha, han skrev bare ned detaljene i matbestillingen din.
  • Sรฅ gรฅr kelneren til kjรธkkenet. Pรฅ kjรธkkenet tilbereder ikke servitรธren maten din.
  • Kokken lager maten din. Servitรธren fรฅr bestillingen din til ham sammen med bordnummeret ditt.
  • Lag deretter mat til deg. Han bruker ingredienser for รฅ lage maten. La oss anta at du bestiller en grรธnnsakssandwich. Da trenger han brรธd, tomat, potet, paprika, lรธk, bite, ost osv. som han henter fra kjรธleskapet
  • Kok siste hรฅnd over maten til servitรธren. Nรฅ er det servitรธrens jobb รฅ flytte denne maten utenfor kjรธkkenet.
  • Nรฅ vet servitรธren hvilken mat du har bestilt og hvordan den serveres.

I dette MVC-arkitektureksemplet,

View= You
Waiter= Controller
Cook= Model
Refrigerator= Data

La oss se enda et eksempel pรฅ en MVC-modell,

Eksempel 2

MVC-eksempler

Bilkjรธringsmekanisme er et annet eksempel pรฅ MVC-modellen.

  • Hver bil bestรฅr av tre hoveddeler.
  • Visning: Brukergrensesnitt: (Girspak, paneler, ratt, brems osv.)
  • Kontroller- mekanisme (motor)
  • Modell- Oppbevaring (bensin- eller dieseltank)

Bilen kjรธrer fra motoren tar drivstoff fra lageret, men den kjรธrer kun ved รฅ bruke nevnte brukergrensesnittenheter.

Populรฆre MVC-nettrammeverk

Her er en liste over noen populรฆre MVC-rammeverk:

Fordeler med MVC: Viktige fordeler

Her er de store fordelene ved รฅ bruke MVC-arkitektur:

  • Enkelt kodevedlikehold som er lett รฅ utvide og dyrke
  • MVC-modellkomponent kan testes separat fra brukeren
  • Enklere stรธtte for nye typer klienter
  • Utvikling av de ulike komponentene kan utfรธres parallelt.
  • Det hjelper deg รฅ unngรฅ kompleksitet ved รฅ dele en applikasjon inn i de tre enhetene. Modell, visning og kontroller
  • Den bruker bare et Front Controller-mรธnster som behandler nettapplikasjonsforespรธrsler gjennom en enkelt kontroller.
  • Tilbyr den beste stรธtten for testdrevet utvikling
  • Det fungerer bra for nettapper som stรธttes av store team av webdesignere og utviklere.
  • Gir tydelig separasjon av bekymringer (SoC).
  • Sรธkemotoroptimalisering (SEO)-vennlig.
  • Alle klasser og objekter er uavhengige av hverandre slik at du kan teste dem separat.
  • MVC-designmรธnster tillater logisk gruppeping av relaterte handlinger pรฅ en kontroller sammen.

Ulemper ved รฅ bruke MVC

  • Vanskelig รฅ lese, endre, enhetsteste og gjenbruke denne modellen
  • Rammeverkets navigasjon kan vรฆre litt kompleks ettersom den introduserer nye lag med abstracsjon som krever at brukerne tilpasser seg dekomponeringskriteriene til MVC.
  • Ingen formell valideringsstรธtte
  • ร˜kt kompleksitet og ineffektivitet av data
  • Vanskeligheten med รฅ bruke MVC med det moderne brukergrensesnittet
  • Det er behov for flere programmerere for รฅ utfรธre parallell programmering.
  • Kunnskap om flere teknologier er nรธdvendig.
  • Vedlikehold av mange koder i Controller

3-lags Architecture vs. MVC Architecture

Parameter 3-Tier Architecture MVC Architecture
Kommunikasjon Denne typen arkitekturmรธnster kommuniserer aldri direkte med datalaget. Alle lag kommuniserer direkte ved hjelp av trekanttopologi.
bruk 3-lags: mye brukt i nettapplikasjoner der klienten, datanivรฅer og mellomvare kjรธres pรฅ fysisk separate plattformer. Vanligvis brukt pรฅ applikasjoner som kjรธrer pรฅ en enkelt grafisk arbeidsstasjon.

Spรธrsmรฅl og svar

MVC er et arkitektonisk mรธnster, ikke et enkelt designmรธnster. Det organiserer en hel applikasjon i modell-, visnings- og kontrollerlag, og skiller data, presentasjon og brukerinteraksjonslogikk.

MVC bruker en kontroller til รฅ hรฅndtere input og oppdatere modellen og visningen, mens MVVM bruker en ViewModel med databinding. MVVM reduserer standarden og er vanlig i moderne brukergrensesnittrammeverk.

Bruk MVC nรฅr du bygger applikasjoner som trenger tydelig separasjon av data, brukergrensesnitt og logikk, spesielt webapper som vedlikeholdes av stรธrre team. Det forbedrer testbarhet, parallell utvikling og SEO-vennlig ruting.

AI-funksjoner legges vanligvis til i modell- eller tjenestelaget i en MVC-applikasjon. Kontrolleren sender brukerinput til AI-modeller, og visningen viser prediksjoner, anbefalinger eller generert innhold til brukerne.

Ja. AI-kodingsassistenter kan sette opp MVC-komponenter, generere kontrollere, modeller og visninger, og foreslรฅ ruting. Utviklere gjennomgรฅr fortsatt utdataene for รฅ sikre riktig forretningslogikk og sikkerhet.

Oppsummer dette innlegget med: