sintesi teoria mvc

Download Report

Transcript sintesi teoria mvc

Model View Control
Trattazione generale
L'MVC è un'architettura di riferimento che consente:
1. la progettazione modulare di applicazioni interattive con interfaccia grafica
2. di tenere separati il modello dei dati (model), le funzionalità del programma (controller) e le modalità di
visualizzazione e interazione con l’utente (view)
L'MVC consiste in 3 entità:
1. il Model: rappresenta il modello dei dati di interesse per l’applicazione
2. il View: fornisce una rappresentazione grafica ed interattiva del model
3. il Controller: definisce la logica di controllo e le funzionalità applicative
Le interazioni tra le entità MVC
1. Il Model notifica i cambiamenti dello stato e/o dei dati al View.
2. Il View possiede un riferimento al Model e può interrogarlo (per esempio con i metodi get del Model) e
notifica al Controller gli eventi generati con l'interazione con l'utente.
3. Il Controller possiedere i riferimenti al Model e al View e può modificare il model e selezionare il view
Trattazione in relazione a Java
Inizializzazione
L'inizializzazione dell’applicazione è come segue:
1. viene creato il model
2. viene creato il view che riceve un riferimento al model
3. viene creato il controller che riceve riferimenti al model e al view
4.
il view si registra come observer del model
5.
il controller si registra come listener del view
Le interazioni tra le classi Java che compongono MVC
Il controller implementa un'interfaccia di tipo EventListener. Al suo interno ha un'istruzione del tipo
componenteGraficoDelView.addXXXListener(this).
Reagisce per realizzare le funzioni del programma e per aggiornare stato e dati del model.
Il model estende Observable e nei metodi set ha un'istruzione del tipo notifyObservers(Object
o)dove Object o contiene i nuovi valori del model.
Il view implementa l'interfaccia Observer e il suo metodo update(Model m, Object o).
Questo metodo viene attivato dal notifyObserver del model. Object o contiene i cambiamenti del model e in
base a questi il view deve modificare la visualizzazione dei dati.