martedì 4 dicembre 2007

MVC

Nella magior parte dei casi ci si imbatte in applicativi che leggono dati da un fonte, vengono modificati in base a delle logiche e quindi proposti all'utente finale.

Questo flusso tanto nautarale, quanto ovvio, è comunemente chiamato M.V.C.











M>Model
V>View
C>Controller

Il Model è l'application Object, il View è la Presentation e il Controller non è altro che la defenizione del modo in cui l'utente o gli utenti agiranno nei confronti dei primi due.

Già da questa semplice logica si può inture quanto questo approccio possa essere elastico ed applicabile a tutti
i contesti.

La riconducibilità di tutti i case study a questo approccio ci da la possibilità di individuare un comportamento
di base nell'affrontare un progetto.

il concetto di Model
Il model potrebbe essere rappresentato dai Dati ? In parte si.
I dati in questa astrazione, posso essere interpretati sia come semplici informazioni , che come informazioni complesse già derivate da una logica.

Tuttavia, si è soliti individura in MVC il model come dati anche se tuttavia si tratta di un astrazione.

il concetto di View
Con View si intende puramente la user interface, ossia che cosa viene presentato all'utente.
Possono esserci molteplici View per gli stessi dati.

Consentitemi un esempio, più o meno banale, ma alquanto esplicativo. Pensate all'indicatore del livello della benzina.
Questo è il nostro View, ed il Model è "il serbatoio + la benzina stessa + il galleggiante (sensore...)".

Per comprendere che siamo a quasi secco sono state implementate due user interface.
La prima è la lancetta che punterà indicativamente verso il basso.
La seconda è la spia luminosa che si accende.

I dati sono gli stessi ma sono rappresentati in modo completamente diverso.

Il concetto di Controller
Ritornando all'esempio fatto per il View il controller è in buona sostanza la logica per cui tutto debba funzionare.
Ossia il trigger che fa accendere la lampadina, quando il sensore rileva che siamo a secco, oppure, un azione correlata, dipendente dalla posizione della lancetta, quando questa raggiunge una determinata soglia, si accende ANCHE la lampadina.



Perchè assumere questo modello come il nostro punto di partenza?
Perchè è collaudato, perchè è diffuso e non da meno perchè funziona.
Devo essere onesto, quando sono passato dalla programmazione (giochi per bimbi) alla programmazione (giochi per grandi) mi sono reso conto che nella maggior parte dei casi quest'approccio non viene considerato, dando vita a problematiche che rimangono nascoste. E quando si presentano, (e si presentano sempre... ) sono difficili o troppo costose per essere recuperate.




Nessun commento: