DAO

El patrón Data Access Object (DAO) pretende principalmente independizar la aplicación de la forma de acceder a la base de datos, o cualquier otro tipo de repositorio de datos. Para ello se centraliza el código relativo al acceso al repositorio de datos en las clases llamadas DAO. Fuera de las clases DAO no debe haber ningún tipo de código que acceda al repositorio de datos.

Las ventajas de usar el patrón DAO son las siguientes:

Los siguientes diagramas UML muestran ejemplos de objetos DAO.

ProfesorDAOProfesor create()void save(Profesor profesor)void update(Profesor profesor)Profesor get(int idProfesor)void delete(int idProfesor)List<Profesor> findAll()UsuarioDAOUsuario create()void save(Usuario usuario)void update(Usuario usuario)Usuario get(int idUsuario)void delete(int idUsuario)List<Usuario> findAll()

La mayor desventaja de usar el patrón DAO es el riesgo de tener código muy similar entre los distintos objetos DAO porque, en caso de modificación o de corrección de un error, sería necesario hacer el mismo trabajo en todas las clases DAO. Por suerte, desde Java y usando Generics se reduce el código duplicado al mínimo.

Referencias