Som programmerare kommer du att komma i kontakt med flera olika mönster som är tänkta att lösa vissa specifika problem. Model-View-Controller, eller MVC, är ett vanligt programmeringsmönster som används både i frontend- och backendapplikationer. Det finns många fördelar med mönster, vilket gör det bra att skaffa sig grundläggande förståelse för de vanligare mönstren.

Vanliga fördelar är att man slipper fundera ut en lösning varje gång man har ett problem. Mönstret finns där som en vägledning och guide för hur man kan strukturera lösningen. Detta gör det inte bara snabbare och enklare att skriva kod från början, utan det underlättar också för nya programmerare som kommer in i ett projekt. På samma sätt underlättar det vid kommunikation runt en specifik lösning eftersom alla utvecklare använder samma terminologi i projektet.

MVC är ett väldigt vanligt mönster som hjälper till vid skapandet av användargränssnitt. Inom JAVA-utveckling är det ett mönster som ofta används för att bygga desktopapplikationer eller webbapplikationer – gemensamt är att de har data (Model) som användaren tittar på (View) och kan göra saker med (Controller).

Skiss: user uses the controller, the controller manioulates the model, the model updates the view, the user sees the view
Blockdiagram över Model-View-Controller

De olika komponenterna i mönstret har olika ansvar och gör olika saker.

Model används för att representera datan. Det är en datastruktur som är helt oberoende av både view och controller. Modellen ansvarar för att hantera data, logik och affärsregler i applikationen. Det är vanligt att en modell är speglad av en bestående lagring som t.ex. en tabell i databasen.

View är en representation i användargränssnittet. Många gånger behövs det flera vyer till samma modell, t.ex. kan det vara olika vyer som ansvarar för visnings, skapande och redigerings gränssnitt för samma modell.

Controller är komponenten som hanterar händelser i användargränsnittet och gör om dem till kommnadon för modellen. Det kan finnas flera kontrollers som arbetar mot samma modell – det är vanligt att en vy är kopplad till en kontroller men det förekommer att flera vyer använder samma kontroller.

En skärmavbildning som visar ett kodträd med de olika komponenterna synliga
Controllers i blått, Models i grönt och Views i gult

När användaren besöker sidan kommer hen till en controller som sedan hämtar data från modellen och en vy renderas. Användaren kan sedan interagera med gränssnittet, vilket i sin tur gör att metoder i controllern anropas. Hur de olika komponenterna faktiskt implementeras beror på vilken typ av applikation som byggs och vilka ramverk som används.