Vad är Model-View-Controller?

Model-view-controller (MVC) är en typ av programvaruarkitektur och designmönster som segmenterar varje element i ett program i väl definierade funktionsområden. I arkitektur med modellvy-kontroller hanterar modellen 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 input från vyn, utvärderar eller behandlar den på annat sätt 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 av modellvisare-styrenheten 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 mönstret model-view-controller 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 kontrollenheten, och faktiskt ändra information eller ladda information görs av modellen. Beroende på den exakta designen 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 om kontrollera att det uppdaterar skärmen och inte accepterar ny ingång. Till skillnad från vissa designmönster som tar en strikt svartbox-strategi, tenderar modell-kontrollerprogram 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 mönstret för modellvy-kontrollen inte innehålla endast en av varje komponent. Ett exempel är en applikation som har flera vyer, till exempel flera skärmar, eller en skärm som kan ses på flera klientenheter. Flera vyer och kontroller kan användas i en applikation som gör att många användare kan komma åt en databas, alla svarar på en enda modell. Det är emellertid vanligare att designa system som upprätthåller ett-till-ett-förhållande för modell-view-controller-komponenterna.

Även om komponenter för modellvisningsstyrenhet förlitar sig på 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, speciellt för icke-objektorienterade tillämpningar. 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 ett nytt GUI kan implementeras utan att påverka modellen eller styrenheten. Det bör emellertid noteras att grundläggande förändringar av ett modell-view-controller-system kan kräva någon 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?