miércoles, 28 de enero de 2009

Patron de diseño DAO

Los patrones de diseño (design patterns) son la base para la búsqueda
de soluciones a problemas comunes en el desarrollo de software y otros
ámbitos referentes al diseño de interacción o interfaces.

En este pequeño articulo quiero hablar de el patron de diseño DAO( Data
Access Objetc)
que esta relacionado con la persistencia de nuestra
aplicacion.

El problema que viene a resolver este patrón es el de contar con diversas
fuentes de datos ( base de datos, archivos, servicios externos, etc ). De tal
forma que se encapsula la forma de acceder a la fuente de datos. Este patrón
surge históricamente de la necesidad de gestionar una diversidad de fuentes
de datos, aunque su uso se extiende al problema de ancapsular no sólo la fuente
de datos, sino además ocultar la forma de acceder a los datos. Se trata de
que el software cliente se centre en los datos que necesita y se olvide de cómo
se realiza el acceso a los datos o de cual es la fuente de almacenamiento


La ventaja de usar objetos de acceso a datos es que cualquier objeto de
negocio (aquel que contiene detalles específicos de operación o aplicación)
no requiere conocimiento directo del destino final de la información que
manipula
.

Este ejemplo es muy bueno, imaginemos que nuestra aplicación va de
maravilla, cuando de pronto, se acerca nuestro querido jefe y nos comenta
que por X, Y y Z razones se va a cambiar el motor de la base de datos a
PostgreSQL. OOOOO que probleman, pero nosotros como habiamos leido
este blog y aplicamos el patron de diseño DAO le decimos al jefe no hay
problema para eso soy ingeniero y no un artesano, entonces aprovechamos
inmediatamente y le pedimos un aumento de sueldo jajajaajja.

Por lo que cuando la capa de lógica de negocio necesite interactuar con la base
de datos, va a hacerlo a través de la API que le ofrece DAO. Generalmente esta
API consiste en métodos CRUD (Create, Read, Update y Delete)
.

En una aplicación, hay tantos DAOs como modelos. Es decir, en una base de
datos relacional, por cada tabla, habría un DAO.


Los DTO (Data Transfer Object) o también denominados VO (Value Object).
Son utilizados por DAO para transportar los datos desde la base de datos
hacia la capa de lógica de negocio y viceversa
.

Bueno como siempre sus link, para entrar mas en detalle a este y
mas patrones de diseño.

http://java.sun.com/blueprints/corej2eepatterns/Patterns/DataAccessObject.html

http://java.sun.com/blueprints/corej2eepatterns/index.html

http://java.sun.com/blueprints/corej2eepatterns/Patterns/index.html

http://www.programacion.com/java/tutorial/patrones2/8/




1 comentario:

Anónimo dijo...

Me parecen precisas tus explicaciones sobre el patrón DAO, pero tambien valdria aclarar que el DTO pueder utilizarse mas allá de la capa de persistencia y la de negocio, por ejemplo usando el patron MVC.