Ciao a tutti,
ho alcune difficoltà ad afferrare alcuni concetti dell'MVC, forse perché il libro è un po troppo teorico per i miei gusti.
In particolare cosa si intende con il termine business object?
Spiegherò quel che ho capito a parole mie molto schematicamente e spero qualcuno voglia correggermi in caso di errori.
Per realizzare un applicazione web è bene che io la divida in tre livelli:
- Model, l'inserimento/estrapolazione di dati in un DB (JavaBean)
- View, la visualizzazione dei dati (pagine HTML e JSP)
- Controller, il processamento di questi dati (Servlet)
Se ad esempio voglio fare un'applicazione web che consente di inserire dei dati ad un utente attraverso una pagina HTML, salvare tali dati su un DataBase e visualizzare una pagina che confermi l'inserimento effettuato ed i dati memorizzati, allora creerò i seguenti file:
1) Form.html (View)
Creo una pagina HTML che contiene un form in cui l'utente può inserire nome, cognome ed età. Appena preme "Invio" questi valori vengono passati ad una servlet
2) UserServlet.java (Controller)
La servlet prende questi dati che Form.html gli ha passato e, attraverso le chiamate ai metodi della parte di Model che interagisce col database, li processa ed invia i risultati ad una JSP
3) User.java, UserIO.java (Model)
User.java è un javabean, ovvero, un oggetto che è la versione speculare della mia tabella, e UserIO.java ha le istruzioni JDBC utili ad interagire col DB.
4) Result.jsp (View)
E' una JSP che mostra i risultati che il Controller, cioè la Servlet, gli ha passato.
Se quello che ho scritto è giusto alcune domande mi sorgono...
- Quando si dice che "il Model rappresenta lo strato di business dell'applicazione" significa che il temine strato Model e strato business sono sinonimi, cioè ci si sta riferendo alla stessa cosa?
- Siccome il model "contiene i dati e fornisce i metodi per accedervi", allora a far parte del Model, nella mia ipotetica applicazione Web, è - oltre a User.java e UserIO.java - anche la tabella User del mio DabaBase, visto che è questa tabella che effettivamente "contiene i dati", mentre le classi di prima "forniscono i metodi per accedervi"?
- Per logica di business (o logica applicativa) cosa si intende di preciso?
- I business Object sono le classi, e quindi gli oggetti, dello strato Model...in altre parole le classi User.java e UserIO.java?
Insomma non ho capito un tubo del temine business...forse perchè lo traduco in "azienda" e non capisco che c'entra l'azienda in tutto ciò![]()
Spero di essere stato chiaro e mi scuso per la prolissità.
Grazie dell'attenzione,
Matteo.