MVC Framework Tutorial for nybegynnere: Hva er, ArchiTecture & Eksempel

Hva er MVC Framework?

De 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 nyere tid er MVC-mønster mye brukt i moderne webapplikasjoner

Funksjoner av MVC

  • Enkel og friksjonsfri testbarhet. Svært testbart, utvidbart og pluggbart rammeverk
  • For å designe en nettapplikasjonsarkitektur ved hjelp av MVC-mønsteret, gir den full kontroll over HTML-en din og nettadressene dine
  • 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-vennlige URL-er. Kraftig URL-kartlegging for forståelige og søkbare URL-er
  • Støtter for testdrevet utvikling (TDD)

MVC Architecture

Her er 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 hverandre denne komponenten i detalj:

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 utdatapresentasjonen 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, informerer modellen og visningen for å endres etter behov.

En kontroller sender kommandoer til modellen for å oppdatere dens tilstand (f.eks. lagring av et spesifikt dokument). Kontrolleren sender også kommandoer til den tilknyttede visningen for å endre visningens presentasjon (For eksempel rulle 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ørselen 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.
  • Vis = Brukergrensesnitt: (Girspak, paneler, ratt, brems, etc.)
  • 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 ren 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 gruppering av relaterte handlinger på en kontroller sammen.

Ulemper ved å bruke MVC

  • Vanskelig å lese, endre, enhetsteste og gjenbruke denne modellen
  • Rammeverksnavigasjonen kan til dels komplisert ettersom den introduserer nye lag med abstraksjon som krever at brukere 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.

Oppsummering

  • MVC er et arkitektonisk mønster som skiller en applikasjon i 1) modell, 2) visning og 3) kontroller
  • 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
  • MVC-arkitektur ble først diskutert i 1979 av Trygve Reenskaug
  • MVC-arkitektur i Java er et svært testbart, utvidbart og pluggbart rammeverk
  • Noen populære MVC-rammeverk er Rails, Zend Framework, CodeIgniter, Laravel, Fuel PHP, etc.