Model View Controller Pattern (MVC)

Model View Controller Pattern (MVC)

-Introduzione

Il pattern in questione è molto famoso ma è spesso utilizzato con superficialità degli sviluppatori. Ciò è probabilmente dovuto alla sua complessità, dal momento che stiamo parlando di una vera e propria "composizione di pattern". Venne introdotto nel mondo del software per la costruzione di interfacce grafiche con Smalltalk-80, ma oggi deve gran parte della sua fama a Java. L'MVC è stato infatti utilizzato per la struttura di alcuni componenti Swing, e soprattutto è coerente con l'architettura Java 2 Enterprise Edition (J2EE).

Questo documento è liberamente ispirato, per quanto riguarda la sua struttura, alla descrizione fornita proprio dal catalogo dei pattern J2EE (Java Blueprints).

-Contesto

L'applicazione deve fornire una interfaccia grafica (GUI) costituita da più schermate, che mostrano vari dati all'utente. Inoltre le informazioni che devono essere visualizzate devono essere sempre quelle aggiornate [1].

-Problema

L'applicazione deve avere una natura modulare e basata sulle responsabilità, al fine di ottenere una vera e propria applicazione component - based. Questo è conveniente per poter più facilmente gestire la manutenzione dell'applicazione. Per esempio ai nostri giorni, con la massiccia diffusione delle applicazioni enterprise, non è possibile prevedere al momento dello sviluppo, in che modo e con quale tecnologia gli utenti interagiranno con il sistema (WML?, XML?, WI-FI?, HTML?). Appare quindi chiaro il bisogno di un'architettura che permetta la separazione netta tra i componenti software che gestiscono il modo di presentare i dati, e i componenti che gestiscono i dati stessi.

-Forze

  • E' possibile accedere alla gestione dei dati con diverse tipologie di GUI (magari sviluppate con tecnologie diverse)
  • I dati dell'applicazione possono essere aggiornati tramite diverse interazioni da parte dei client (messaggi SOAP, richieste HTTP...)
  • Il supporto di varie GUI ed interazioni non influisce sulle funzionalità di base dell'applicazione.

-Soluzione e struttura

L'applicazione deve separare i componenti software che implementano il modello delle funzionalità di business, dai componenti che implementano la logica di presentazione e di controllo che utilizzano tali funzionalità. Vengono quindi definiti tre tipologie di componenti che soddisfano tali requisiti:

- il Model, che implementa le funzionalità di business

- la View: che implementa la logica di presentazione

- il Controller: che implementa la logica di controllo

La seguente fig. 1, rappresenta un diagramma di interazione, che evidenzia le responsabilità dei tre componenti.




Fig. 1: "MVC: diagramma di interazione"

Non è stato fornito nessun testo alternativo per questa immagine


...per saperne di più clicca l'immagine qui sotto.


Per visualizzare o aggiungere un commento, accedi

Altri articoli di Diego Saletta

Altre pagine consultate