MVC
Model View Controller
INTRODUZIONE

È un pattern di archittetura di software che separa i dati della
aplicazione, la interfacia del usuario e la logica di controllo in 3
componenti diversi.

Se usa di solito in aplicazioni web, dove la View è la pagina
HTML, il Controller è il codice che fornisce i dati dinamici alla
pagina e il Model contiene le classi rappresentativi della
aplicazione (come il messaggio di un foro…)
ELEMENTI PRINCIPALI (1)

È normale pensare che una applicazione ha 3 elementi principali:
presentazione (IU), dominio e acceso a i dati. In MVC,
l’elemento di presentazione sta repartita in controller e view. La
principale separazione si da tra presentazione e dominio; la
separazacione tra V/C è meno chiara.

MVC divide una applicazione in 3 zone: procesamiento, uscita ed
entrata.

Per questo, utiliza le seguente abstrazioni:
ELEMENTI PRINCIPALI (2)

Modello: questa è la rappresentazione specifica del dominio della
informazione sulla qual funziona la applicazione. Il modello è altra forma
di chiamare all’elemento del dominio. La logica del dominio aiunge
significato a i dati.

Vista: presenta il modello in un formato adecuato per interattuare, di
solito un elemento della interfacia di usuario.

Controllatore: risponde a eventi, di solito azzioni del usuario e invoca
cambii nello modello e probabilimente nella vista.

Molti applicazioni usano un mecanismo di almacenamiento persistente
(come può essere una DB) per almacenare i dati. MVC non parlo
direttamente di questa capa di acceso a i dati.
FLUSSO DI CONTROLLO (1)
Benche si possono trovare diversi implementazioni di MVC, il flusso che
sigue il controllo di solito è il siguente:

1.
Il usuario interattua con la interfacia di usuario di alcuna forma (per
esempio, preme un tasto, collegamento).
2.
Il controllatore riceve (per parti degli oggetti della interfacia-vista) la
notificazione dell’azione richiesta per l’usuario. Il controllatore gestiona
l’evento che arriva, frequentemente a traverso de in gestore di evenit
(handler o callback).
3.
Il controllatore accede al modello, attualizandolo, posibilemente
modificandolo di forma adecuata alla azione richiesta per l’usuario. I
controllatori complessi stanno di solito strutturati usando un pattern di
comando che encapsula gli azioni e semplifica la loro estensione.
FLUSSO DI CONTROLLO (2)
4.
Il controllatore delega agli oggetti de la vista, la tarea di desplegare
l’interfacia d’usuario. La vista riceve i dati del modello per gestire la
interfacia adecuata per l’usuario dove si reflessa i cambi nello modello.
Il modello non devo avere conoscimiento diretto sulla vista. Purtroppo,
il pattern Observador può essere utilizato per provedere di certa
indirezione tra il modello e la vista permitiendo al modello notificare
agli interesati di qualce cambio. Il controllatore non pasa oggetti del
dominio alla vista benche può dare la ordine alla vista per che se
attualize.
5.
L’interfacia di usuario aspetta nuovi itterazioni dil usuario, cominziando
il ciclo di nuovo.
DIAGRAMA
VENTAGGI (1)



Menore accoppiamento
 Desacopla le viste del modello
 Desacopla i modelli de la forma in cui se mostrano e se introduceno i
dati.
Maggiore cohesión
 Ogni elemento del pattern sta altamente spezialiti nella loro tarea (la
vista mostrare dati al usuario, il controllatore negli entrati e il modello
nello suo oggetto di negozio.
Maggiore facilità per lo sviluppo de clienti ricci in molteplice dispositivi e canali


Una vista per ogni dispositivo secondo le loro caratterische
Una vista per la Web e un altra per applicazioni di desktop
VENTAGGI (2)

Le viste forniscono di Maggiore flessibilità e agilità
 Se può creare moltiplice viste di uno stesso modello
 Se può creare, agiungere, modificare e eliminare nuovi viste
dinamicamente
 Le viste se possono anidare
 Se può cambiare il modo in cui una vista risponde al usuario senza
cambiare la sua rappresentazione visuale





Se può sincronizare le viste
Se possono concentrare in diversi aspetti del modello
Più clarità de disegno
Più clarità de disegno
Maggiore escalabilità
PATTERN IN MVC (1)
Un pattern d’archittetura può contenere diversi pattern de disegno.
Il MVC può contenere le seguente pattern:
1.
Observer: Per il mecanismo di publicazione e soscrizione che permette la
notificazione dei cambi nel modello alle viste.
2.
Composite: per la creazione di viste complessi. Utilizando queste pattern
possiamo creare una gerarchia de viste e tratare a ogni vista complessa lo
stesso che a una visa normale.
3.
Strategy: è la relazione sulle viste e i controllatori.Utilizando queste pattern
possiamo cambiare dinamicamente o in tempo di compilazione gli
algoritmi del controllatore con in cuale risponde al suo entorno.
PATTERN IN MVC (1)
4.
Factory Method: per specificare la clase controllatore predeterminada de
una vista.
5.
Decorador: per aiungere capacità addizionale alla vista (per esempio
scroll...)
6.
Proxy: per distribuire la archittetura (Modello e Vista-Controllotore) in
diversi precetti.
BCE
Boundary Control Entity
INTRODUZIONE

La maggiore parte delle classe definite durante l’analise di
requerimenti rappresentano oggetti sulle quali la informazione
sarà conservata nella DB del sistema.

Separa logica applicativa da presentazione e da dati presentati
all’utente:
• Esaminare ciascun caso d’uso
• “Coordinamento” tra modello di navigazione e modello
concettuale
• Si fara’ evolvere in modello di design
ELEMENTI PRINCIPALI (1)

Tomando una archittetura in 4 nivelli, parliamo di 4 tipi
di classe:




Persistent database classes (D), corrisponde a classe della
aplicazione e describe che sarà conservato continuamente
nella DB del sistema.
Entity classes (E), rappresentano in memoria, strutturi
persistente per classe di DB.
Boundary classes (B), specificano funzioni de interfaccia.
Controll classes (C), specificano funzioni logiche di negozio.
ELEMENTI PRINCIPALI (2)

Boundary class

Describe gli oggetti che rappresentano la interfaccia tra un
attore e il sistema.

Permette la demostrazione visuale o l’effetto sonoro

A menudo persiste più avanti della eseguizione sola del
programa.
ELEMENTI PRINCIPALI (3)

Control class

Describe gli oggetti che interceptano acontecimenti di entrata
di usuario e controllano la eseguizione di un proceso di
negozio.

Rappresenta azzioni e le attività di un caso di uso

Con frecuenzia non persistono più avanti della eseguizione
del programa.
ELEMENTI PRINCIPALI (4)

Entity class

Describe gli oggetti che rappresentano la semántica di entità
in un uso.

Corresponde a una struttura di dati nella DB del sistema

Sempre persistono più avanti della eseguizione del programa.
ELEMENTI PRINCIPALI (5)
FLUSSO DI CONTROLLO (1)


Esempio pe capire il flusso di controllo
Partendo di queste analise
FLUSSO DI CONTROLLO (2)
DIAGRAMA
Control
Package
Actor
Boundary
Package
Entity
Package
MVC & BCE
MVC & BCE (1)

Nel modello BCE, la struttura è totalmente orizzontale.
Tra gli strati di Boundary ed Entity si interpone lo strato di
Control.

Nel modello MVC, la struttura è maggiormente interconnessa in
cui i blocchi strutturali sono posti ai vertici di un triangolo i cui
lati rappresentano i canali di comunicazione tra i blocchi.

Nel modello BCE, lo strato di Entity rappresenta la pura
ontologia dei dati.

Nel modello MVC, il Model diventa un’entità attiva a tutti gli
effetti
MVC & BCE (2)

Nel modello BCE, lo strato di Controllo opera da layer
intermedio tra i livelli di Boundary e di Entity.

Nel modello MVC, prevedono meccanismi di notifica diretta, alle
Viste, dei cambiamenti del Modello.
Scarica

Descrizione comparativa tra MVC e BCE (controllare italiano)