Model-View-Controller (MVC, talvolta tradotto in italiano Modello-Vista-Controllore) è un pattern architetturale fondamentale nello sviluppo di interfacce grafiche di sistemi software object-oriented. Originariamente impiegato dal linguaggio Smalltalk, il pattern è stato esplicitamente o implicitamente sposato da numerose tecnologie moderne, come framework basati su Java (Swing, JSF e Struts), su Objective C o su .NET.

A causa della crescente diffusione di tecnologie basate su MVC nel contesto di framework o piattaforma middleware per applicazioni Web, l'espressione framework MVC o sistema MVC sta entrando nell'uso anche per indicare specificatamente questa categoria di sistemi (che comprende per esempio Struts, Spring e Tapestry).

Soluzione

La soluzione viene interpretata a modo proprio dagli implementatori, ma in linea generale è questa: l' applicazione deve separare i componenti software che implementano il modello delle funzionalità di business (model), dai componenti che implementano la logica di presentazione (view) e di controllo che utilizzano tali funzionalità (controller).

Schema di funzionamento

Il Model è il cuore dell'applicazione: definisce i dati e le operazioni che possono essere eseguiti su essi. Può inoltre avere la responsabilità di notificare eventuali modifiche dei dati ad altri componenti software registrati.

La View è la rappresentazione grafica dei dati a video (GUI). Registrandosi presso il Model, la View può mantenere la rappresentazione dei dati sempre aggiornata.

Il Controller ha la responsabilità di gestire l'input prodotto dall'utente e interpretarlo eseguendo azioni sul Model e/o sulla View (il Controller, in altre parole, implementa la logica di controllo dell'applicazione).

Voci correlate