Model-view-controller: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Hxhbot (discussione | contributi)
m robot Modifico: ru:Model-view-controller
Kormoran (discussione | contributi)
precisato meglio
Riga 1:
{{S|informatica}}
'''Model-View-Controller''' ('''MVC''', talvolta tradotto in italiano '''Modello-Vista-Controllore''') è un [[design pattern|pattern architetturale]] fondamentalemolto famoso, insostituibile nello sviluppo di [[GUI|interfacce grafiche]] di sistemi [[software]] [[Programmazione orientata agli oggetti|object-oriented]]. Originariamente impiegato dal linguaggio [[Smalltalk]], il pattern è stato esplicitamente o implicitamente sposato da numerose tecnologie moderne, come [[framework]] basati su [[linguaggio Java|Java]] ([[Swing (Java)|Swing]], [[Java Server Faces|JSF]] e [[Struts]]), su [[Objective C]] o su [[.NET]].
 
APer causa dellala 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 specificatamente questa categoria di sistemi (che comprende per esempio [[Apache Struts|Struts]], [[Spring framework|Spring]] e [[Tapestry]]).
 
==SoluzioneStruttura==
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.
La soluzione viene interpretata a modo proprio dagli implementatori, ma in linea generale è questa: 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 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 soluzionestruttura specifica di ogni implementazione viene quindi interpretata adi modovolta proprioin volta dagli implementatori, ma in linea generale è questa: 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'').
 
==Schema di funzionamento==