Model-View-Controller

Model-View-Controller-koncept. Den heldragna linjen representerar en direkt förbindelse, den streckade linjen indikerar förbindelse via en observatör.

Model-View-Controller (MVC) är ett arkitekturmönster som används inom systemutveckling. I komplexa datorapplikationer kan det vara lämpligt att separera data (Model) och presentation (View) så att inte datahanteringen får konsekvenser på grund av förändringar i presentationslagret, samt att data kan omorganiseras utan att behöva ändra i presentationslagret. MVC löser detta problem genom att separera data och affärslogiken från presentationen och användarinteraktionen, genom att introducera en mellanliggande komponent: Controllern.

Beskrivning av arkitekturmönstret

MVC är ett av de äldsta arkitekturmönstren som beskrivits. För att arbeta med en lösning enligt mönstret kan ett antal designmönster utnyttjas, till exempel observatör, kommando, fabriksmetod och fasad.

Det är vanligt att dela upp en applikation i separata lager: presentation (användargränssnitt), domän och data. I MVC är lagren: Model (domän och data), View (gränssnitt) och Controller (inputlogik). MVC hanterar domän och data som en komponent.

MVC omfattar mer av applikationens arkitektur än vad som är normalt för ett designmönster. Termen arkitekturmönster kan således vara passande eller kanske aggregerat designmönster.

Model

Model utgör den domänspecifika representationen av den information som applikationen bearbetar. Model är ett annat namn för domänlagret. Domänlogik kan exempelvis kontrollera om dagens datum är användarens födelsedag, eller beräkna kostnaden av en kundvagn.

Många tillämpningar använder ett icke-flyktigt lagringsmedium (såsom en databas) för att lagra data. MVC nämner inte specifikt datalagret utan det förmodas vara under eller i model.

View

View renderar model till en form som är lämplig för interaktion, normalt ett användargränssnitt. MVC används ofta i webbapplikationer där view är HTML-sidorna och koden som hämtar dynamisk data för sidorna är model.

Controller

Controller bearbetar och svarar på händelser, som användarinteraktion, och kan framkalla ändringar i model och view.

Media som används på denna webbplats

Question book-4.svg
Författare/Upphovsman: Tkgd2007, Licens: CC BY-SA 3.0
A new incarnation of Image:Question_book-3.svg, which was uploaded by user AzaToth. This file is available on the English version of Wikipedia under the filename en:Image:Question book-new.svg
ModelViewControllerDiagram2.svg
A simple diagram depicting the relationship between the Model, View, and Controller. Note: the solid lines indicate a direct association, and the dashed line indicate an indirect association (e.g., observer pattern).