lunes, 8 de julio de 2013


DATA ACCES OBJECT (DAO)

DAO Reduce el acoplamiento entre la lógica de negocio y la lógica de persistencia. La lógica de negocio de aplicaciones a menudo necesita objetos de dominio, que se conserva en cualquier base de datos, sistema de archivos o cualquier otro medio de almacenamiento de persistencia. 
Patrón DAO permite encapsular código para realizar CRUD operación contra la persistencia del resto de la aplicación. Lo que significa que cualquier cambio en la lógica de persistencia no afectará a otras capas de la aplicación que ya está a prueba. Patrón DAO permite la aplicación para hacer frente a cualquier cambio en la base de datos o proveedor de tecnología de persistencia. Implementa el mecanismo de acceso requerido para trabajar con el origen de datos. La fuente de datos puede ser un almacenamiento persistente como un RDBMS, un servicio externo como un intercambio B2B, un repositorio como una base de datos LDAP, o un servicio de negocio acceder a través de CORBA.
Data Acces Object extrae la aplicación de acceso a datos subyacente para el BusinessObject para permitir un acceso transparente a la fuente de datos. El BusinessObject también delega la carga de datos y operaciones.

BENEFICIOS
DAO o de acceso a los datos patrón de diseño de objetos es buen ejemplo de la abstracción y la encapsulación de principios orientados a objetos .
·         Se separa la lógica de persistencia es una capa separada llamada Acceso a los datos capa que permite la aplicación reaccione de forma segura sobre el cambio en el mecanismo de persistencia.

·         evitar la conexión a la base de datos para ejecutar las pruebas. 

·         Se basa en la interfaz, traduce el código flexible y de calidad.


COMO FUNCIONA DATA ACCES OBJETC
DAO encapsula el acceso a la base de datos. Por lo que cuando la capa 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). Entonces por ejemplo cuando la capa de lógica de negocio necesite guardar un dato en la base de datos va a llamar a un método créate(). DAO Consiste básicamente en una clase que es la que interactúa con la base de datos.Los métodos de esta clase dependen de la aplicación y de lo que queramos hacer.


·         BusinessObject: Es el objeto que quiere acceder a la fuente de datos para poder almacenar o consultar datos.

·         DataAccessObject: Abstrae al BusinessObject de los detalles del acceso a la fuente de datos.

·         DataSource: Representa la implementacion de la fuente de datos en sí.


·         TransferObject: Es un objeto intermedio entre el BussinessObject y el DataAccessObject.



CONSECUENCIAS
Permite Transparencia
Los objetos de negocio pueden utilizar la fuente de datos sin conocer los detalles específicos de la implementación del origen de datos. El acceso es transparente porque los detalles de implementación están ocultos en el interior del DAO.
Permite la Migración Fácil
Una capa de DAO facilita una aplicación para migrar a una aplicación de base de datos diferente. Los objetos de negocio no tienen conocimiento de la aplicación de datos subyacente. Por lo tanto, la migración implica cambios sólo en la capa DAO. Además, si se emplea una estrategia de fábrica, es posible proporcionar una implementación de fábrica de hormigón para cada aplicación de almacenamiento subyacente. En este caso, la migración a una aplicación de almacenamiento diferente significa proporcionar una nueva implementación de fábrica para la aplicación.
Reduce la Complejidad del Código de Bussines Object
Como el DAOs manejar todas las complejidades de acceso a datos, simplifica el código de los objetos de negocio y otros clientes de datos que utilizan el DAO. Todo el código de la aplicación relacionada (como SQL) se encuentra en el DAO y no en el objeto de negocio. Esto mejora la legibilidad del código y la productividad en el desarrollo.

Centraliza todas de Acceso  Datos en una Capa Separada

Debido a que todas las operaciones de acceso a datos están ahora delegadas a la DAOs, la capa separada de acceso a datos puede ser visto como la capa que se puede aislar el resto de la aplicación de la aplicación de acceso a datos. Esta centralización hace que la aplicación más fácil de mantener y gestionar.

No es útil para la Persitencia Adminsitrativa Mediante Cotenedor

Debido a que el contenedor EJB maneja los beans de entidad con persistencia gestionada por contenedor (CMP), el contenedor de servicios de forma automática todos los accesos de almacenamiento persistente. Las aplicaciones que utilizan gestionadas por contenedor beans de entidad no necesitan una capa de DAO, ya que el servidor de aplicaciones de forma transparente proporciona esta funcionalidad. Sin embargo, DAOs siguen siendo útil cuando se requiere una combinación de CMP (para beans de entidad) y BMP (por sesión frijoles, servlets).

Añade Capa Adicional.

La DAOs crean una capa adicional de objetos de datos entre el cliente y el origen de datos que deben ser diseñados e implementados para aprovechar los beneficios de este patrón.Sin embargo, el beneficio obtenido por la elección de este enfoque vale la pena el esfuerzo adicional.



EJEMPLO DE PATRON DE DISEÑO (DAO)
En el núcleo de acceso a datos de objetos DAO o patrón es una interfaz java, el cual define varios métodos para realizar operaciones CRUD ejemplo Crear, Leer, Actualizar y eliminar basado en su tecnología de servidor de aplicaciones se pueden crear diferentes tipos de implementación de esta interfaz, por ejemplo JdbcDAOImpl para conectar la base de datos usando JDBC.
Así es como una interfaz típica DAO parece:

pública interfaz AccountDAO {
pública booleano guardar ( cuenta Account ) ;
pública booleano actualización ( cuenta Account ) ;
pública booleano findByAccountNumber ( int numeroCuenta ) ;
pública booleano delete ( cuenta Account ) ;

}

Que define varios métodos para llevar a cabo la operación CRUD.
CONCLUSION.

Este patrón de diseño en pocas palabras reduce el acoplamiento entre la lógica de negocio y la lógica de persistencia, la cual la lógica quiere decir que hace una consulta a la base de datos y devuelve un resultado y la capa de persistencia es la que manda a llamar los métodos del CRUD.

No hay comentarios:

Publicar un comentario