Skip to main content

Vad är modell-view-controller?

Model-View-Controller (MVC) är en typ av mjukvaruarkitektur och designmönster som segmentar varje element i ett program i väl definierade funktionalitetsområden.I modellvy-kontrollerarkitektur handlar modellen med all den interna programlogiken som manipulerar, sparar, hämtar och på annat sätt hanterar och beräknar data.Visningsaspekten är ansvarig för att visa information från modellen för användaren, och den ger också ett sätt för användaren att ge input till programmet.Styrenheten tar inmatning från vyn, utvärderar eller på annat sätt bearbetar den och interagerar med modellen för att ändra data eller programtillståndet, vilket i slutändan visas för användaren genom vyn.Ofta ses modellvy-kontrollmönstret i applikationer som hanterar ett grafiskt användargränssnitt (GUI).Med hjälp av MVC -mönstret hanteras de olika visuella elementen i GUI av vyn, inspelningen och behandlingen av var och vad en användare klickar hanteras av styrenheten, och faktiskt ändrar information eller laddningsinformation görs av modellen.Beroende på den exakta utformningen av en applikation kan varje komponent i MVC -mönstret ha en mekanism för att interagera med de andra komponenterna, till exempel att modellen kan direkt instruera vyn att uppdatera skärmen eller vyn som har ett sätt att berätta förController att det uppdaterar skärmen och inte accepterar ny inmatning.Till skillnad från vissa designmönster som tar en strikt svartlådlig strategi, tenderar modell-view-controller-program att vara lite mer flexibla, även om vissa implementeringar kan göra ett MVC-program svårt att ändra eller felsöka modulärt.

I vissa fall är modell-Visningskontrollmönster behöver inte bara innehålla en av varje komponent.Ett exempel är en applikation som har flera vyer, till exempel flera bildskärmar, eller en skärm som kan ses på flera klientenheter.Flera vyer och styrenheter kan användas i en applikation som gör det möjligt för många användare att komma åt en databas, alla svarar på en enda modell.Det är emellertid vanligare att designa system som upprätthåller ett en-till-en-förhållande mellan komponenterna för modell-view-kontroller.

Även om modell-view-kontrollerkomponenter har en beroende av varandra, kan det vara mycket lättareFör att modifiera vissa delar av ett system som använder MVC-mönstret än om inget mönster användes alls, särskilt när det gäller icke-objektorienterade applikationer.Om en applikation använder återuppringningar eller lyssnare och observatörer för att implementera interaktioner mellan komponenterna, kan varje komponent ändras utan att påverka de andra två.Detta innebär att en ny GUI skulle kunna implementeras utan att påverka modellen eller styrenheten.Det bör emellertid noteras att grundläggande förändringar av ett modell-view-controllersystem kan kräva en liten mängd omkodning för varje enskild komponent.