Vai al contenuto

Model-view-controller

Da Wikipedia, l'enciclopedia libera.

Descrizione

Componenti

Il componente centrale del MVC, il modello, cattura il comportamento dell'applicazione in termini di dominio del problema, indipendentemente dall'interfaccia utente. Il modello gestisce direttamente i dati, la logica e le regole dell'applicazione. Una vista può essere una qualsiasi rappresentazione in output di informazioni, come un grafico o un diagramma. Sono possibili viste multiple delle stesse informazioni, come ad esempio un grafico a barre per la gestione e la vista tabellare per l'amministrazione. La terza parte, il controller, accetta l'input e lo converte in comandi per il modello e/o la vista.

Struttura

Tipica interazione tra componenti del pattern MVC

Il pattern è basato sulla separazione dei compiti fra i componenti software che interpretano tre ruoli principali:

  • il model fornisce i metodi per accedere ai dati utili all'applicazione;
  • il view visualizza i dati contenuti nel model e si occupa dell'interazione con utenti e agenti;
  • il controller riceve i comandi dell'utente (in genere attraverso il view) e li attua modificando lo stato degli altri due componenti.

Questo schema, fra l'altro, implica anche la tradizionale separazione fra la logica applicativa (in questo contesto spesso chiamata "logica di business"), a carico del controller e del model, e l'interfaccia utente a carico del view.[1]

I dettagli delle interazioni fra questi tre oggetti software dipendono molto dalle tecnologie usate (linguaggio di programmazione, eventuali librerie, middleware e via dicendo) e dal tipo di applicazione (per esempio se si tratta di un'applicazione web, o di un'applicazione desktop). Quasi sempre la relazione fra view e model è descrivibile anche come istanza del pattern Observer. A volte, quando è necessario cambiare il comportamento standard dell'applicazione a seconda delle circostanze, il controller implementa anche il pattern Strategy.

Esempio

In J2EE un esempio tipico è quello della suddivisione dell'applicazione in JSP (per il front-end o view), Servlet per il controller e un File Java per la logica di business di interfacciamento o model con un DB. Quando ciò non è presente un framework MVC sta implementando la stessa logica/schema semplificando il tutto.

Note

  1. ^ Vedi l'articolo di Martin Fowler.

Voci correlate

Altri progetti

  Portale Informatica: accedi alle voci di Wikipedia che trattano di informatica