Hva er modell-visningskontroller?
Model-View-Controller (MVC) er en type programvarearkitektur og designmønster som segmenterer hvert element i et program til veldefinerte funksjonalitetsområder. I modell-visningskontrollerarkitektur omhandler modellen all den interne programlogikken som manipulerer, sparer, henter og ellers håndterer og beregner data. Visningsaspektet er ansvarlig for å vise informasjon fra modellen for brukeren, og det gir også en måte for brukeren å gi innspill til programmet. Kontrolleren tar innspill fra visningen, vurderer eller på annen måte behandler den og samhandler med modellen for å endre data eller programtilstanden, som til slutt vises for brukeren gjennom visningen. Selv om Model-Viewer-Controller Design krever et program for å innkapsle funksjonalitet, trenger de tre seksjonene fortsatt å samhandle med hverandre på noen måte og generelt er avhengige av hverandre i noen forstand, i motsetning til andre mer aggressive designmønstre.
Ganske ofte sees Model-View-Controller-mønsteret i applikasjoner som administrerer et grafisk brukergrensesnitt (GUI). Ved hjelp av MVC -mønsteret blir de forskjellige visuelle elementene i GUI håndtert av visningen, opptaket og behandlingen av hvor og hva en bruker klikkes håndteres av kontrolleren, og faktisk endrer informasjon eller lasting av informasjon gjøres av modellen. Avhengig av den nøyaktige utformingen av en applikasjon, kan hver komponent i MVC -mønsteret ha en mekanisme for å samhandle med de andre komponentene, for eksempel at modellen kan instruere visningen direkte for å oppdatere skjermen eller visningen som har en måte å fortelle kontrolleren at den er å oppdatere skjermen og ikke å godta ny inngang. I motsetning til noen designmønstre som tar en streng black-box-tilnærming, har modell-view-controller-programmer en tendens til å være litt mer fleksible, selv om noen implementeringer kan gjøre et MVC-program vanskelig å endre eller feilsøke modulært.
I visse tilfeller trenger ikke Model-View-Controller-mønsteret bare inneholde en av hver komponent. Et eksempel er en applikasjon som har flere visninger, for eksempel flere skjermer, eller en skjerm som kan sees på flere klientenheter. Flere visninger og kontrollere kan brukes i en applikasjon som lar mange brukere få tilgang til en database, og alle svarer på en enkelt modell. Det er imidlertid mer vanlig å designe systemer som opprettholder et en-til-en-forhold mellom modell-visningskontrollerkomponentene.
Selv om modell-visningskontrollerkomponenter har en avhengighet av hverandre, kan det være mye lettere å endre visse deler av et system som bruker MVC-mønsteret enn om ikke noe mønster ble brukt i det hele tatt, spesielt når det gjelder ikke-objektorienterte applikasjoner. Hvis en applikasjon bruker tilbakeringinger eller lyttere og observatører for å implementere interaksjoner mellom komponentene, kan hver komponent endres uten å påvirke de to andre. Dette betyr at en ny GUI kan implementeres uten enFFECTE av modellen eller kontrolleren. Det skal imidlertid bemerkes at grunnleggende endringer i et modell-visningskontrollersystem kan kreve en liten mengde re-koding for hver enkelt komponent.