Skip to main content

Hvad er model-view-controller?

Model-view-controller (MVC) er en type softwarearkitektur og designmønster, der segmenterer hvert element i et program i veldefinerede områder af funktionalitet.I model-view-controller-arkitektur omhandler modellen al den interne programlogik, der manipulerer, gemmer, henter og ellers håndterer og beregner data.Visningsaspektet er ansvarligt for at vise information fra modellen for brugeren, og det giver også en måde for brugeren at give input til programmet.Controlleren tager input fra visningen, vurderer eller på anden måde behandler den og interagerer med modellen for at ændre data eller programtilstand, som i sidste ende vises til brugeren gennem visningen.Selvom Model-Viewer-Controller-design kræver et program til at indkapsle funktionalitet, er de tre sektioner stadig nødt til at interagere med hinanden på en eller anden måde og er generelt afhængige af hinanden i en eller anden forstand, i modsætning til andre mere aggressive designmønstre.Ofte ses model-view-controller-mønsteret i applikationer, der administrerer en grafisk brugergrænseflade (GUI).Ved hjælp af MVC -mønsteret håndteres de forskellige visuelle elementer i GUI af visningen, optagelsen og behandlingen af hvor og hvad en bruger klikker håndteres af controlleren, og faktisk ændrer information eller indlæsningsinformation af modellen.Afhængigt af det nøjagtige design af en applikation kan hver komponent i MVC -mønsteret have en mekanisme til at interagere med de andre komponenter, såsom modellen, der er i stand til direkte at instruere visningen om at opdatere skærmen eller visningen, der har en måde at fortælle denController, at det er forfriskende på skærmen og ikke at acceptere nye input.I modsætning til nogle designmønstre, der tager en streng black-box-tilgang, har model-view-controller-programmer en tendens til at være lidt mere fleksible, selvom nogle implementeringer kan gøre et MVC-program vanskeligt at ændre eller debug modulært.

I visse tilfælde, modellen-Visningskontrolmønster behøver ikke kun at indeholde en af hver komponent.Et eksempel er en applikation, der har flere visninger, såsom flere skærme eller et display, der kan ses på flere klientenheder.Flere visninger og controllere kan bruges i en applikation, der giver mange brugere adgang til en database, som alle svarer på en enkelt model.Det er dog mere almindeligt at designe systemer, der opretholder et en-til-en-forhold mellem model-view-controller-komponenterne.

Selvom komponenter på modellen-view-controller har en afhængighed af hinanden, kan det være meget lettereFor at ændre visse dele af et system, der bruger MVC-mønsteret end hvis der overhovedet ikke blev brugt noget mønster, især i tilfælde af ikke-objektorienterede applikationer.Hvis en applikation bruger tilbagekald eller lyttere og observatører til at implementere interaktioner mellem komponenterne, kan hver komponent ændres uden at påvirke de to andre.Dette betyder, at en ny GUI kunne implementeres uden at påvirke modellen eller controlleren.Det skal dog bemærkes, at grundlæggende ændringer i et model-view-controller-system muligvis kræver en lille mængde genkodning for hver enkelt komponent.