Model-View-Controller

Från Wikipedia
Hoppa till: navigering, sök
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 designmö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 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 designmönstret[redigera | redigera wikitext]

MVC är ett av de äldsta designmönstrena som beskrivits. Det baseras normalt på mindre designmönster som används tillsammans med varandra, till exempel Observer pattern, Command pattern, Factory pattern och Facade pattern.

Det är vanligt att dela upp en applikation i separata lager: presentation (användargränssnitt), domän och data. I MVC är lagrena: 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[redigera | redigera wikitext]

Model är den domänspecifika representationen av informationen på vilken applikationen körs. Model är ett annat namn för domänlagret. Domänlogik gör rådata meningsfull, till exempel att beräkna om dagens datum är användarens födelsedag, eller beräkning av en kundvagns kostnad.

Flera applikationer använder ett persistent lagringsmedium (som en databas) för att lagra data. MVC nämner inte specifikt datalagret utan det förmodas vara under eller i model.

View[redigera | redigera wikitext]

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[redigera | redigera wikitext]

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