8 ottobre 2015

Model View Controller


Oggi descriviamo un design pattern, il modello MVC (acronimo di Model-View-Controller). Un pattern architetturale, che descrive lo schema organizzativo della struttura che caratterizza un sistema software. Esso individua le parti del sistema cui associare responsabilità omogenee e le relazioni esistenti tra queste diverse parti. Il pattern MVC è stato introdotto nel 1979 dal professore Trygve M.H. Reenskaug ed è stato originariamente impiegato dal linguaggio di programmazione orientato agli oggetti Smalltalk, e in seguito utilizzato da molte tecnologie, tra cui i Framework basati sul linguaggio di scripting PHP. In altre parole è un metodo su come dividere le applicazioni in tre parti idealmente indipendenti che sono il controller, il model e la view. Queste tre componenti MVC si occupano ognuna di un compito diverso in modo da dividere rispettivamente il controllo dell’applicazione, la struttura dati e la visualizzazione, separando in questo modo la logica applicativa a carico del controller e del model dall'interfaccia utente a carico della view, ma sono strettamente correlati tra di loro in quanto ogni modifica al modello deve essere invocata dal controller e deve notificare la vista in modo tale che l’applicazione funzioni in modo corretto. Solitamente, nel campo dello sviluppo web, le azioni che un utente può intraprendere si possono riassumere nella richiesta di un URL al quale possono essere inviati opzionalmente dei dati. Il controller è uno script associato a un URL e quindi a una determinata azione che carica i modelli appropriati e passa il risultato sulla vista corretta. Una vista non è altro che un template che visualizza i dati ricevuti dal controller dopo un’eventuale elaborazione da parte dei modelli. Un modello infine non è altro che una sorgente di dati ottenuti da un file di testo oppure da una tabella SQL e al quale sono associati una serie di script per manipolare gli stessi dati. Nel successivo post descriveremo meglio i compiti di questi tre oggetti!

Model View Controller



Nessun commento:

Posta un commento