Originariamente inviato da francesco.muia
Tutti i DAO sono indipendenti, ma questo non vuol dire che non possono collaborare insieme.
Se per esempio, hai due tabelle che sono in relazione 1-N (babbo figlio per intenderci) e quindi giustamente avrai il DAO per gestire la classe BABBO e il DAO della classe FIGLIO.
Ora supponiamo di dover salvare un babbo con i figli, tu sicuramente vorresti fare BABBO_DAO.salva e poi FIGLIO_DAO.salva, mentre per me è molto più corretto che sia il BABBO_DAO ad occuparsi di salvare anche i figli e questo lo può fare o inserendo il codice di salvataggio dei nel proprio metodo di salvataggio oppure "Delegando" la cosa al DAO che gestisce i figli (e direi che la seconda è migliore).
Facendo cosi però deleghi la gestione del database alla servlet (commit e rollback), e suppongo che oltre al DAO tu voglia seguire anche MVC e quindi la cosa non va bene sia per quanto riguarda MVC ma secondo anche per il DAO in quanto dovrebbe essere quest'ultimo a prendersi carico della gestione del database.
Cosi facendo, non separando le responsabilità, cosa succederebbe se, in corso d'opera, ti dicessero di non usare un database ma bensi un file txt.
Con il tuo approccio dovresti cambiare tutto lo strato di view.
Nel mio caso l'unica cosa da cambiare sarebbe la Factory e l'introduzione di nuovi DAO per la gestione del salvataggio sul file.