logo

MVC Framework Introduksjon

I løpet av de siste årene har nettsteder skiftet fra enkle HTML-sider med litt CSS til utrolig komplekse applikasjoner med tusenvis av utviklere som jobber med dem samtidig. For å jobbe med disse komplekse webapplikasjonene bruker utviklere forskjellige designmønstre for å legge ut prosjektene sine, for å gjøre koden mindre kompleks og enklere å jobbe med. Det mest populære av disse mønstrene er MVC også kjent som Model View Controller.

Hva er MVC?

De Model-View-Controller (MVC) rammeverket er et arkitektonisk/designmønster som deler en applikasjon i tre logiske hovedkomponenter Modell , Utsikt , og Kontroller . Hver arkitektonisk komponent er bygget for å håndtere spesifikke utviklingsaspekter ved en applikasjon. Det isolerer forretningslogikken og presentasjonslaget fra hverandre. Det ble tradisjonelt brukt for skrivebordet grafiske brukergrensesnitt (GUIer) . I dag er MVC et av de mest brukte industristandard webutviklingsrammeverkene for å lage skalerbare og utvidbare prosjekter. Den brukes også til å designe mobilapper.



MVC ble opprettet av Trygve Reenskaug . Hovedmålet med dette designmønsteret var å løse problemet med brukere som kontrollerer et stort og komplekst datasett ved å dele opp en stor applikasjon i spesifikke seksjoner som alle har sitt eget formål.

Funksjoner av MVC:

  • Det gir et klart skille mellom forretningslogikk, brukergrensesnittlogikk og inngangslogikk.
  • Den gir full kontroll over HTML og URL-er som gjør det enkelt å designe nettapplikasjonsarkitektur.
  • Det er en kraftig URL-kartleggingskomponent som vi kan bruke til å bygge applikasjoner som har forståelige og søkbare URL-er.
  • Det støtter Testdrevet utvikling (TDD).

For å vite mer om fordelene ved å bruke MVC Framework, se artikkelen – Fordeler med å bruke MVC-rammeverket

Komponenter i MVC:

MVC-rammeverket inkluderer følgende 3 komponenter:



  • Kontroller
  • Modell
  • Utsikt

MVC arkitekturdesign

Kontroller:

Kontrolleren er komponenten som muliggjør sammenkoblingen mellom visningene og modellen, slik at den fungerer som en mellommann. Kontrolleren trenger ikke å bekymre seg for å håndtere datalogikk, den forteller bare modellen hva den skal gjøre. Den behandler all forretningslogikk og innkommende forespørsler, manipulerer data ved hjelp av Modell komponent, og samhandle med Utsikt for å gjengi den endelige utgangen.

java sorterer en liste

Utsikt:

De Utsikt komponenten brukes for all UI-logikken til applikasjonen. Den genererer et brukergrensesnitt for brukeren. Visninger opprettes av dataene som samles inn av modellkomponenten, men disse dataene tas ikke direkte, men gjennom kontrolleren. Den samhandler kun med kontrolleren.



Modell:

De Modell komponent tilsvarer all datarelatert logikk som brukeren arbeider med. Dette kan representere enten dataene som overføres mellom View- og Controller-komponentene eller andre forretningslogikkrelaterte data. Den kan legge til eller hente data fra databasen. Den svarer på kontrollerens forespørsel fordi kontrolleren ikke kan samhandle med databasen av seg selv. Modellen samhandler med databasen og gir de nødvendige dataene tilbake til kontrolleren.

Arbeid av MVC-rammeverket med et eksempel:

La oss forestille oss en sluttbruker sender en forespørsel til en server for å få en liste over elever som studerer i en klasse. Serveren vil da sende den forespørselen til den aktuelle kontrolleren som håndterer studenter. Den kontrolleren vil da be om at modellen som håndterer studenter returnerer en liste over alle studenter som studerer i en klasse.

Dataflyten i MVC-komponenter

Modellen vil spørre databasen etter listen over alle studenter og deretter returnere listen tilbake til kontrolleren. Hvis svaret tilbake fra modellen var vellykket, ville kontrolløren be visningen knyttet til studentene om å returnere en presentasjon av listen over studenter. Denne visningen vil ta listen over studenter fra kontrolleren og gjengi listen til HTML som kan brukes av nettleseren.

Kontrolleren tar deretter presentasjonen og returnerer den tilbake til brukeren. Dermed avsluttes forespørselen. Hvis modellen tidligere returnerte en feil, ville kontrolleren håndtere denne feilen ved å be visningen som håndterer feil om å gjengi en presentasjon for den aktuelle feilen. Den feilpresentasjonen vil da bli returnert til brukeren i stedet for elevlistepresentasjonen.

Som vi kan se fra eksemplet ovenfor, håndterer modellen alle dataene. Visningen håndterer alle presentasjonene, og kontrolleren forteller bare modellen og visningen hva den skal gjøre. Dette er den grunnleggende arkitekturen og virkemåten til MVC-rammeverket.

MVC-arkitektoniske mønster lar oss følge følgende designprinsipper:
1. Splitt og hersk. De tre komponentene kan være noe uavhengig utformet.
2. Øk samholdet. Komponentene har sterkere lagsammenheng enn om visningen og kontrolleren var sammen i ett enkelt UI-lag.
3. Reduser koblingen. Kommunikasjonskanalene mellom de tre komponentene er minimale og enkle å finne.
4. Øk gjenbruk. Visningen og kontrolleren bruker vanligvis utstrakt bruk av gjenbrukbare komponenter for ulike typer UI-kontroller. Brukergrensesnittet vil imidlertid bli applikasjonsspesifikk, derfor vil det ikke være lett å gjenbruke.
5. Design for fleksibilitet. Det er vanligvis ganske enkelt å endre brukergrensesnittet ved å endre visningen, kontrolleren eller begge deler.

Fordeler med MVC:

  • Koder er enkle å vedlikeholde og de kan enkelt utvides.
  • MVC modell komponent kan testes separat.
  • Komponentene til MVC kan utvikles samtidig.
  • Det reduserer kompleksiteten ved å dele en applikasjon i tre enheter. Modell, visning og kontroller.
  • Det støtter Testdrevet utvikling (TDD).
  • Det fungerer bra for nettapper som støttes av store team av webdesignere og utviklere.
  • Denne arkitekturen hjelper til med å teste komponenter uavhengig ettersom alle klasser og objekter er uavhengige av hverandre
  • Søkemotoroptimalisering (SEO) Vennlig.

Ulemper med MVC:

  • Det er vanskelig å lese, endre, teste og gjenbruke denne modellen
  • Den er ikke egnet for å bygge små applikasjoner.
  • Ineffektiviteten til datatilgang i sikte.
  • Rammeverksnavigasjonen kan være kompleks da den introduserer nye lag med abstraksjon som krever at brukere tilpasser seg dekomponeringskriteriene til MVC.
  • Økt kompleksitet og ineffektivitet av data

Populære MVC-rammer:

Noen av de mest populære og mye brukte MVC-rammeverkene er listet opp nedenfor.

side ned tastaturet
  • Ruby on Rails
  • Django
  • CherryPy
  • Fjær MVC
  • Katalysator
  • Skinner
  • Zend Framework
  • Drivstoff PHP
  • Laravel
  • Symfoni

MVC brukes vanligvis på applikasjoner som kjører på en enkelt grafisk arbeidsstasjon. Inndelingen av logiske komponenter muliggjør lesbarhet og modularitet i tillegg til at det gjør det mer behagelig for testdelen.