Model-view-controller: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Nessun oggetto della modifica
Riga 5:
 
==Struttura==
Il pattern è basato sulla [[separazione dei compiti]] fra i [[componente software|componenti software]] che interpretano tre ruoli principali:
Questo pattern, come dice il nome, è basato su tre oggetti principali: il '''model''' che contiene i dati e/o le funzioni per accedervi, il '''view''' che costituisce l'interfaccia utente, ne riceve gli input e visualizza i dati contenuti nel (o ottenuti dal) model, e il '''controller''' che riceve i comandi dell'utente dal view e li esegue praticamente, modificando lo stato degli altri due oggetti principali.
* il '''model''' contiene i dati e fornisce i [[metodo|metodi]] per accedervi;
* il '''view''' visualizza i dati contenuti nel model;
* 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 ''model'', e l'interfaccia utente, a carico del ''view'' e del ''controller''.
I dettagli delle interazioni fra questi tre oggetti software dipendono molto dal tipo di applicazione e dalla tecnologia usata (una web application, un middleware, un programma di produttività personale) e i tre oggetti principali hanno a loro volta una struttura complessa; quasi sempre il view e il controller ereditano il pattern [[Observer]] (cioè sono "anche" implementazioni di Observer) in modo da essere consapevoli di eventuali cambiamenti di stato del model. A volte, quando è necessario cambiare il comportamento standard dell'applicazione a seconda delle circostanze, il controller implementa anche il pattern [[Strategy]].
 
La struttura specifica di ogni implementazione viene quindi interpretata di volta in volta dagli implementatori, ma in linea generale 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'').
I dettagli delle interazioni fra questi tre oggetti software dipendono molto daldalle tipotecnologie diusate applicazione([[linguaggio edi dallaprogrammazione]], tecnologiaeventuali usata (una web[[libreria applicationsoftware|librerie]], un [[middleware,]] un programma die produttivitàvia personaledicendo) e idal tretipo oggettidi principaliapplicazione hanno(per aesempio lorose voltasi unatratta strutturadi complessa;un'[[applicazione quasiweb]], sempreo il view e il controller ereditano il patterndi un'[[Observerapplicazione desktop]]). (cioèQuasi sonosempre "anche"la implementazionirelazione difra Observer)''view'' ine modo''model'' daè esseredescrivibile consapevolianche dicome eventuali cambiamenti di statoistanza del modelpattern [[Observer]]. A volte, quando è necessario cambiare il comportamento standard dell'applicazione a seconda delle circostanze, il ''controller'' implementa anche il pattern [[Strategy]].
 
==Schema di funzionamento==