Ho cercato molte informazioni sul modello DAO e ho capito il motivo. Ma mi sembra che la maggior parte delle spiegazioni non stiano raccontando l'intera storia e con ciò intendo dove useresti il tuo DAO. Così per esempio se ho una classe utente e un'UserDAO corrispondente che è in grado di salvare e ripristinare gli utenti per me, che è il modo corretto:Modello DAO e oggetti modello
Il controller crea l'oggetto utente e lo passa al UserDAO a salvarlo al database
il controller crea l'oggetto utente e nel suo costruttore dell'oggetto utente effettua una chiamata al userDAO al fine di salvare se stesso nel database
si tratta di un odore di codice e si è manca una classe extra "UserManager" che il controllore chiederà di creare all'utente. L'UserManager è responsabile della creazione l'utente e chiedendo al UserDAO per salvarlo
Mi sento come la terza opzione è la migliore, perché tutto ciò che il controller è responsabile è delegare la richiesta per l'oggetto del modello corretto . Qual è il tuo modo preferito? Mi sto perdendo qualcosa qui?
Solo per aggiungere a questo; Generalmente creo anche un oggetto UserServices responsabile della gestione della sessione/transazione. Quindi ho il UserDAO che è responsabile solo per fare effettivamente le query invocate da UserServices. – sbrattla
@sbrattla - Se si utilizzano transazioni utente, questo può sicuramente avere senso. Assumevo automaticamente transazioni EJB, sebbene OP non le menzionasse. Kneejerk :) – kostja
@ Tom se non siete d'accordo - per favore elaborate – kostja