Modell–visning–kontroller

Modell–visning–kontroller (engelsk: model-view-controller, MVC) er et designmønster anvendt i programvareutvikling. Et MVC-program deler programmet opp i data (model) og brukergrensesnitt (view), slik at endringer i brukergrensesnittet ikke vil ha noen innvirkning på hvordan dataene håndteres, og vice versa. Det bruker et mellomliggende komponent for å kommunisere mellom view og model – controller.

MVC kombineres ofte med konseptet objektorientert programmering, hvor dataenkapsulering er sentralt. M i MVC, som står for "model", forekommer oftest som en representasjon av en klasse som representerer et objekt. Som eksempel, en "model" av klassen "menneske" representeres med en serie egenskaper og funksjoner (eller metoder) gjennom en instans av gitt klasse. Denne instansen tar vare på data om f.eks en person, e.g. navn, alder, etc. 

Når informasjonen om en person skal vises fram, eller manipuleres, så gjøres dette gjennom et grensesnitt, også kalt View. Informasjonen i modellen som skal vises fram i et View forberedes av en Controller, som sender aktuell data til et View (dette kan være objektet i sin helhet, eller bare egenskaper av objektet).

Oppsummert:
 Model: holder på data
 View: viser fram data
 Controller: flytter på data

Fordelen med å benytte dette mønsteret er forenklet kode ved å unngå replikasjon, og gjenbrukbare objekter som kan brukes i andre view (f.eks webgrensesnitt for mobiltelefoner som skiller seg fra grensesnitt for nettlesere på datamaskiner).  

MVC ble først beskrevet av Trygve Reenskaug i 1979. Han arbeidet da med Smalltalk hos Xerox PARC.

Referanser

Informatikk
Programmering