Model-view-controller: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
m Annullate le modifiche di 93.50.80.29 (discussione), riportata alla versione precedente di Pier IP |
|||
Riga 9:
A causa della crescente diffusione di tecnologie basate su MVC nel contesto di [[framework]] o piattaforma [[middleware]] per [[applicazione Web|applicazioni Web]], l'espressione '''framework MVC''' o '''sistema MVC''' sta entrando nell'uso anche per indicare specificamente questa categoria di sistemi (che comprende per esempio [[Ruby on Rails]], [[Apache Struts|Struts]], [[Spring framework|Spring]], Tapestry e [[Catalyst]]).
== Struttura ==
[[File:MVC-Process.png|miniatura|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 [[metodo|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 "[[Business logic|logica di business]]"), a carico del ''controller'' e del ''model'', e l'interfaccia utente a carico del ''view''.
I dettagli delle interazioni fra questi tre oggetti software dipendono molto dalle tecnologie usate ([[linguaggio di programmazione]], eventuali [[libreria software|librerie]], [[middleware]] e via dicendo) e dal tipo di applicazione (per esempio se si tratta di un'[[applicazione web]], o di un'[[Programma (informatica)|applicazione desktop]]). Quasi sempre la relazione fra ''view'' e ''model'' è descrivibile anche come istanza del pattern [[Observer pattern|Observer]]. A volte, quando è necessario cambiare il comportamento standard dell'applicazione a seconda delle circostanze, il ''controller'' implementa anche il pattern [[Strategy pattern|Strategy]].
== Voci correlate ==
|