Model-View-Controller

Den här artikeln behöver källhänvisningar för att kunna verifieras. (2020-12)
Åtgärda genom att lägga till pålitliga källor (gärna som fotnoter). Uppgifter utan källhänvisning kan ifrågasättas och tas bort utan att det behöver diskuteras på diskussionssidan.
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.

v  r
Designmönster inom programmering
Gang of Fours mönster
Skapandemönster
Abstrakt fabrik · Byggare · Fabriksmetod · Prototyp · Singleton
Strukturmönster
Adapter · Brygga · Dekoratör · Fasad · Flugvikt · Komposit · Proxy
Beteendemönster
Ansvarskedja · Besökare · Interpreter · Iterator · Kommando · Mallmetod · Mediator · Memento · Observatör · Strategi · Tillstånd
Arkitektmönster
Model-View-Controller
Personer
Christopher Alexander · Erich Gamma · Ralph Johnson · John Vlissides · Grady Booch · Kent Beck · Ward Cunningham · Martin Fowler · Robert Martin · Jim Coplien · Douglas Schmidt · Linda Rising
Böcker
Design Patterns