Vad är modell-view-controller?

Model-View-Controller (MVC) är en typ av programvaruarkitektur 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. Kontrollern 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. Även om designen för modellviewer-kontroller kräver ett program för att kapsla in funktionalitet, måste de tre avsnitten fortfarande interagera med varandra på något sätt och är i allmänhet beroende av varandra i någon mening, till skillnad från andra mer aggressiva designmönster.

Ganska ofta ses modell-view-controller-mö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 modellen som direkt kan instruera vyn att uppdatera skärmen eller vyn som har ett sätt att berätta för styrenheten att det är uppfriskande skärmen och inte att acceptera 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 behöver inte modell-view-controller-mönstret bara innehålla en av varje komponent. Ett exempel är en applikation som har flera vyer, till exempel flera monitorer, 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 av komponenterna för modellvy-kontroller.

Även om modell-view-controller-komponenter har beroende av varandra, kan det vara mycket lättare att modifiera vissa delar av ett system som använder MVC-mönstret än om inget mönster användes alls, särskilt i fallet med 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 enffecting modellen eller styrenheten. Det bör emellertid noteras att grundläggande förändringar av ett modell-view-controller-system kan kräva en liten mängd omkodning för varje enskild komponent.

ANDRA SPRÅK

Hjälpte den här artikeln dig? Tack för feedbacken Tack för feedbacken

Hur kan vi hjälpa? Hur kan vi hjälpa?