"Ciao, Amico!"

"Ciao Bilaabo!"

"Sei già un programmatore solido. Quindi, oggi faremo una lezione su MVC."

"MVC è l'acronimo di ModelViewController . È un modello di progettazione architettonica per applicazioni di grandi dimensioni, in cui l'applicazione è suddivisa in tre parti."

"La prima parte contiene tutta la logica di business dell'applicazione . Questa parte è chiamata modello . Contiene il codice che fa tutto ciò per cui l'applicazione è stata creata. Questa parte è la meno dipendente dalle altre."

"La seconda parte contiene tutto ciò che riguarda la visualizzazione dei dati all'utente . Questa parte è chiamata vista . Contiene il codice che controlla la visualizzazione di finestre, pagine, messaggi, ecc."

"La terza parte contiene il codice che elabora le azioni dell'utente . Qualsiasi azione dell'utente destinata a modificare il modello dovrebbe essere gestita qui. Questa parte è chiamata   Controller ."

"Questo approccio consente di creare tre cose in modo indipendente:  la logica del programma (il modello) , il meccanismo per visualizzare i dati del programma all'utente (la vista) e un gestore per l'input/le azioni dell'utente (il controller) ".

"Le applicazioni hanno spesso diverse visualizzazioni . Questo è normale. Puoi visualizzare gli stessi identici dati in Excel sia come numeri che come diagrammi. Nei giochi, puoi visualizzare gli eventi da una visualizzazione in prima persona, terza persona o mappa, oltre a molti altri . Tutte queste sono viste diverse per un singolo Modello ."

"Tutto il codice che decide cosa modificare nel modello in risposta alle azioni dell'utente viene raccolto nel Controller . Ad esempio, se l'utente decide di chiudere il programma, è necessario salvare i dati del modello in un file su disco. Oppure, se l'utente inserisce nuovi dati, è necessario aggiungerli al modello. Il modello notificherà quindi a tutte le visualizzazioni le modifiche ai dati, in modo che visualizzino solo lo stato corrente dei dati."

"Dillo di nuovo."

"Dal punto di vista di uno sviluppatore Java, potremmo dire che il modello, la vista e il controller sono tre gruppi di classi in cui:"

" a)  ogni parte ha il suo scopo;"

" b)  i rapporti tra le classi di un singolo gruppo sono molto forti;"

" c)  le relazioni tra i gruppi sono molto deboli;"

" d)  i modi in cui le parti comunicano tra loro sono fortemente regolamentati."

"Ed ecco un altro modo per immaginarlo:

MVC - 1

"Il modello è la parte più indipendente del sistema . Non dipende dalla vista o dal controller. Il modello non può utilizzare classi dalla vista o dai gruppi di controller (!)."

"Il limite principale della vista è che non può modificare il modello . Le classi di visualizzazione possono accedere al modello per i dati o per iscriversi agli eventi, ma le classi di visualizzazione non possono modificare il modello."

"Il limite principale del controller è che non visualizza i dati . Il controller elabora le azioni dell'utente e modifica il modello di conseguenza."

"Ma perché ne ho bisogno?"

"Il fatto che non lo usi in questo momento, non significa che non lo userai nel prossimo futuro. Sei qui a studiare per trovare un lavoro. E anche se questa conoscenza non si rivela utile mentre studiare, tornerà sicuramente utile mentre si lavora."

"Dopotutto, i progetti reali e le interviste ti aspettano ancora..."

"Siamo qui a parlare insieme ora, ma forse tra un mese sarai già al lavoro."

"Hai assolutamente ragione, Bilaabo. Ti ascolterò attentamente."

"Il modello MVC è molto comune nell'architettura delle applicazioni. Devi conoscerlo, in modo da non iniziare improvvisamente ad aggiungere classi di visualizzazione al modello perché lo trovi più conveniente."

"La cosa più importante in ogni progetto è la sua architettura.  Il tuo compito in questa fase non è tanto riuscire a creare una buona architettura, quanto imparare a capire quella di qualcun altro. Dovrai ancora crescere per un un paio di anni prima di crearne uno tuo. Ma devi capire cosa hanno creato gli altri. Subito."

"Quando un'applicazione utilizza un'architettura standard, tutto diventa molto più chiaro. Conoscendo l'architettura, sai dove sono le cose, come tutto interagisce, più o meno come funziona il programma, dove aggiungere una classe necessaria e dove cercare la causa di un insetto."

"Ma se non hai familiarità con gli approcci standard all'architettura, allora anche la migliore architettura non ti dirà nulla. Sarai come un contadino del medioevo che guarda un'auto nuova. Un'auto standard."

"Capisco. Grazie per l'interessante lezione, Bilaabo."

"Infine, ecco un buon link che dovresti assolutamente controllare:"

Collegamento a materiale aggiuntivo