MVC (Model View Controller) è un pattern architetturale molto diffuso nella programmazione orientata agli oggetti, legato tra i tanti linguaggi anche ad Objective-C. Il modello MVC assegna agli oggetti di una applicazione uno di questi tre ruoli: MODEL (modello), VIEW (vista) o CONTROLLER (controllore). Il pattern definisce però non solo i loro ruoli, ma anche il modo con cui questi comunicano tra loro. Ogni oggetto è separato dall’altro da dei “confini astratti” e comunica con gli oggetti di un altro tipo attraverso questi stessi confini.
MVC è indispensabile per il design di applicazioni Cocoa e i benefici dell’adozione di questo schema sono molteplici.
Gli oggetti creati secondo questo modello, infatti, sono più riusabili e le interfacce tendono ad essere più definite. Le applicazioni basate secondo questo schema sono inoltre più facilmente estendibili rispetto alle altre. Considerate inoltre che molte tecnologie e architetture Cocoa, così come quanto vedremo per la programmazione per iPhone, sono basate su MVC ed è richiesto quindi che i vostri oggetti personalizzati seguano uno di questi tre ruoli.

MVC – Model View Controller
Dallo schema qui sopra si intuisce il funzionamento alla base di questo modello, potete vedere come gli oggetti coinvolti comunicano tra loro e allo stesso tempo siano indipendenti l’uno dall’altro.
Quindi in definitiva abbiamo:
- il model (o modello) fornisce i metodi per accedere ai dati utili all’applicazione;
- la view (o vista) visualizza i dati contenuti nel model e si occupa dell’interazione con gli utenti;
- il controller (o controllore) riceve i comandi dell’utente (in genere attraverso la view) e li attua modificando lo stato degli altri due componenti
La logica del programma (gestita dal controller), interfaccia utente (gestita dalla view) e i dati insieme alle proprietà (gestiti dal model) sono quindi separati tra loro e gestibili in modo del tutto indipendente.
Potete quindi intuire facilmente la potenza di questo modello di programmazione che permette, ad esempio, di modificare completamente una view senza intaccare il resto del programma. Non ci resta che addentrarci in questo mondo e scoprirne le sue infinite potenzialità.
2 Responses to “L#004 – MVC – Model View Controller”
29 Gennaio 2010
LucaSempre più interessante…
12 Luglio 2011
MaveDevGrazie, molto interessante 🙂