Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 6

DATA ACCESS OBJECT (DAO)

Definicin
DAO Es un patrn de diseo utilizado para crear una capa de persistencia
Funcionamiento
DAO encapsula el acceso a la base de datos. Por lo que cuando la capa lgica
de negocio necesite interactuar con la base de datos, va a hacerlo a travs de
la API que le ofrece DAO.
Generalmente esta API consiste en mtodos CRUD (Create, Read, Update, y
Delete). Entonces por ejemplo cuando la capa de lgica de negocio necesite
guardar un dato en la base de datos va a llamar a un mtodo crate().
DAO Consiste bsicamente en una clase que es la que interacta con la base
de datos.
Los mtodos de esta clase dependen de la aplicacin y de lo que queramos
hacer.
Ventajas
Los Objetos de Acceso a Datos son un Patrn de los subordinados de Diseo Core J2EE y
considerados una buena practica. La ventaja de usar objetos de acceso a datos es que
cualquier objeto de negocio (aquel que contiene detalles especficos de operacin o
aplicacin) no requiere conocimiento directo del destino final de la informacin que
manipula.
Los Objetos de Acceso a Datos pueden usarse en Java para aislar a una aplicacin de la
tecnologa de persistencia Java subyacente (API de Persistencia Java), la cual podra ser
JDBC, JDO, Enterprise JavaBeans, TopLink, Hibernate, iBATIS, o cualquier otra tecnologa
de persistencia. Usando Objetos de Acceso de Datos significa que la tecnologa
subyacente puede ser actualizada o cambiada sin cambiar otras partes de la aplicacin.
Desventajas
La flexibilidad tiene un precio. Cuando se aaden DAOs a una aplicacin, la complejidad
adicional de usar otra capa de persistencia incrementa la cantidad de cdigo ejecutado
durante tiempo de ejecucin. La configuracin de las capas de persistencia requiere en la
mayora de los casos mucho trabajo.
Las aplicaciones crticas con el rendimiento no deberan usar DAOs.

El Patrn MVC (Modelo Vista Controlador)


El Modelo Vista Controlador (MVC) es un patrn de arquitectura de software que
separa los datos de una aplicacin, la interfaz de usuario, y la lgica de control en tres
componentes

distintos

(Modelo,

Vista

Controlador).

El

Patrn

MVC

se

ve

frecuentemente en aplicaciones Web, donde la Vista es la pgina HTML y el cdigo que


provee de datos dinmicos a la pgina; el Modelo es el Sistema de Gestin de Base de

Datos y la Lgica de negocio; el Controlador es el responsable de recibir los eventos de


entrada desde la Vista.

Un modelo puede tener diversas vistas, cada una con su correspondiente controlador.
Un ejemplo clsico es el de la informacin de una base de datos, que se puede
presentar de diversas formas: diagrama de tarta, de barras, tabular, etc. Veamos cada
componente.

Modelo
Es la representacin especfica de la informacin con la cual el sistema opera. La lgica
de datos asegura la integridad de estos y permite derivar nuevos datos; por ejemplo, no
permitiendo comprar un nmero de unidades negativo, o calculando los totales e
impuestos del carrito de compra. Esto quiere decir que aqu se operan los datos y las
reglas

de

negocio

asociadas

al

sistema,

incluyendo el anlisis sintctico y el procesamiento de los datos de entrada y


de los datos de salida.
El Modelo es el responsable de:

Acceder a la capa de almacenamiento de datos. Lo ideal es que el modelo sea


independiente del sistema de almacenamiento.

Define las reglas de negocio (la funcionalidad del sistema). Un ejemplo de regla
puede ser: Si la mercanca pedida no est en el almacn, consultar el tiempo de entrega
estndar del proveedor.

Lleva un registro de las vistas y controladores del sistema.

Si estamos ante un modelo activo, notificar a las vistas los cambios que en los
datos pueda producir un agente externo (por ejemplo, un fichero batch que actualiza los
datos, un temporizador que desencadena una insercin, etc.). Un ejemplo de MVC con un
modelo pasivo (aquel que no notifica cambios en los datos) es la navegacin web, que
responde a las entradas del usuario, pero no detecta los cambios en datos del servidor.

Vista

Este presenta el Modelo, usualmente la interfaz de usuario. La vista es la capa de la


aplicacin que ve el usuario en un formato adecuado para interactuar, en otras palabras,
es nuestra interfase grafica.
Las vistas son responsables de:

Recibir datos del modelo y los muestra al usuario.

Tienen un registro de su controlador asociado (normalmente porque adems lo


instancia).

Pueden dar el servicio de Actualizacin(), para que sea invocado por el controlador
o por el modelo (cuando es un modelo activo que informa de los cambios en los datos
producidos por otros agentes).

Controlador
El Controlador es la capa que controla todo lo que puede realizar nuestra aplicacin.
Responde a eventos, usualmente acciones del usuario e invoca cambios en el modelo y
probablemente en la vista. Est compuesto por acciones que se representan con
funciones en una clase. Por ejemplo, yo tengo mi controlador llamado Clientes, y este
controlador puede realizar las acciones Crear,Editar,Listar entre otras.
El controlador es responsable de:

Recibe los eventos de entrada (un clic, un cambio en un campo de texto, etc.).

Contiene reglas de gestin de eventos, del tipo SI Evento Z, entonces Accin W.


Estas acciones pueden suponer peticiones al modelo o a las vistas. Una de estas peticiones
a las vistas puede ser una llamada al mtodo Actualizar(). Una peticin al modelo puede
ser Obtener_tiempo_de_entrega( nueva_orden_de_venta ).

El diagrama de secuencia

Pasos:
1.

El usuario introduce el evento.

2.

El Controlador recibe el evento y lo traduce en una peticin al Modelo (aunque


tambin puede llamar directamente a la vista).

3.

El modelo (si es necesario) llama a la vista para su actualizacin.

4.

Para cumplir con la actualizacin la Vista puede solicitar datos al Modelo.

5.

El Controlador recibe el control.

Ventajas y Desventajas
La popularidad de este diseo se debe mas que todo a que es mucho mas fcil
organizar aplicaciones grandes.
Las ventajas

Clara separacin entre interfaz, lgica de negocio y de presentacin, que adems


provoca parte de las ventajas siguientes.

Sencillez para crear distintas representaciones de los mismos datos.

Facilidad para la realizacin de pruebas unitarias de los componentes, as como de


aplicar desarrollo guiado por pruebas (TDD).

Reutilizacin de los componentes.

Simplicidad en el mantenimiento de los sistemas.

Facilidad para desarrollar prototipos rpidos.

Los desarrollos suelen ser ms escalables.

Las desventajas:

Tener que ceirse a una estructura predefinida, lo que a veces puede incrementar la
complejidad del sistema. Hay problemas que son ms difciles de resolver respetando el
patrn MVC.

La curva de aprendizaje para los nuevos desarrolladores se estima mayor que la de


modelos ms simples como Webforms.

La distribucin de componentes obliga a crear y mantener un mayor nmero de


ficheros.

Ejemplo

Bien, pero esto cmo se implementa? Existe una pequea dificultad: la mayor parte de
las herramientas de desarrollo incorporan en las clases de la vista gran parte o todo el
procesamiento de eventos. Con lo que el controlador queda semioculto dentro de la
vista. A pesar de ello, podemos acercarnos bastante al patrn.

Modelo
Un ejemplo de la vida real de un Modelo seria una clase llamada Cliente, la cual tiene
las mismas propiedades de una tabla cliente en mi base de datos

Controlador
Un Controlador seria el Controlador Cliente, generalmente las clases Controladoras
llevan el sufijo Controlador, as que en nuestro caso se llamara ClientesControlador.
El controlador llevara las acciones que nosotros podemos realizar en un cliente como
por ejemplo, agregar, borrar, modificar, agregar orden, etc.

Vista
La Vista es el mas fcil de entender, simplemente es nuestra pagina html. A travs de la
accin del Controlador especificamos a que vista queremos enviar el resultado de la
accin del Controlador. En algunos casos es necesario pasar informacin a la Vista desde
el Controlador, esto se logra fcilmente en el cdigo de la accin.

Ventajas y desventajas del uso del patrn


Se tienen muchas ventajas como:

La implementacin se realiza de forma modular.

Sus vistas muestran informacin actualizada siempre. El programador no debe


preocuparse de solicitar que las vistas se actualicen, ya que este proceso es realizado
automticamente por el modelo de la aplicacin.

Cualquier modificacin que afecte al dominio, como aumentar mtodos o datos


contenidos, implica una modificacin slo en el modelo y las interfaces del mismo con las vistas,
no todo el mecanismo de comunicacin y de actualizacin entre modelos.

Las modificaciones a las vistas no afectan al modelo de dominio, simplemente se modifica


la representacin de la informacin, no su tratamiento.

MVC esta demostrando ser un patrn de diseo bien elaborado pues las aplicaciones que
lo implementan presentan una extensibilidad y una mantenibilidad nicas comparadas con otras
aplicaciones basadas en otros patrones.
Como desventajas tenemos:

Para desarrollar una aplicacin bajo el patrn de diseo MVC es necesario una mayor
dedicacin en los tiempos iniciales del desarrollo. Normalmente el patrn exige al programador
desarrollar un mayor nmero de clases que, en otros entornos de desarrollo, no son necesarias.
Sin embargo, esta desventaja es muy relativa ya que posteriormente, en la etapa de
mantenimiento de la aplicacin, una aplicacin MVC es mucho ms mantenible, extensible y
modificable que una aplicacin que no lo implementa.

MVC requiere la existencia de una arquitectura inicial sobre la que se deben construir
clases e interfaces para modificar y comunicar los mdulos de una aplicacin. Esta arquitectura
inicial debe incluir, por lo menos, un mecanismo de eventos para poder proporcionar las
notificaciones que genera el modelo de aplicacin; una clase Modelo, otra clase Vista y una clase
Controlador genricas que realicen todas las tareas de comunicacin, notificacin y actualizacin
que sern luego transparentes para el desarrollo de la aplicacin.

MVC es un patrn de diseo orientado a objetos por lo que su implementacin es


sumamente costosa y difcil en lenguajes que no siguen este paradigma.

También podría gustarte