Model-View-Controller

Från Rilpedia

(Omdirigerad från Model-view-controller)
Hoppa till: navigering, sök
Wikipedia_letter_w.pngTexten från svenska WikipediaWikipedialogo_12pt.gif
rpsv.header.diskuteraikon2.gif

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.

Innehåll

Beskrivning av designmönstret

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: View (gränssnitt), Controller, domän och data. MVC hanterar domän och data som en komponent: Model.

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 ä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 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 processar och svarar på händelser, som användarinteraktion, och kan framkalla ändringar i model och view.


Personliga verktyg