Vous êtes sur la page 1sur 5

Unit of Work Unidad de trabajo

Mantiene una lista de los objetos afectados por una transaccin y coordina los cambios de escritura y la resolucin de problemas de concurrencia.

Cuando se est ingresando y consultando informacin de la base de datos, es importante llevar un registro de los cambios, de otra forma no se escribir bien al volver a la base de datos. Similarmente, t tienes que insertar cada objeto nuevo y quitar cada objeto eliminado. Se podra cambiar la base de datos, cada que aparezca un cambio en tu objeto de modelo (object model), pero esto podra alentar la aplicacin, para resolver este problema, se puede usar una unidad de trabajo (Unit of Work). Una unidad de trabajo, guarda en memoria todo lo que se hace durante una transaccin, que pueda afectar la base de datos.

Cmo funciona?
La unidad de trabajo (Unit of Work), es un objeto que guarda todos los cambios que se puedan ver reflejados en la base de datos. Al momento que se termina la transaccin y los datos en la base sern actualizados, la unidad de trabajo, decide que hacer, abre una conexin y escribe los cambios en la base de datos. Obviamente para esto, el objeto de trabajo, debe saber a qu objetos debe de seguir y a cules no.

Con caller registration el usuario de un objeto tiene que recordar registrar el objeto con la unidad de trabajo para los cambios. Todos los objetos que no estn registrados no se escribirn en la base, y da flexibilidad al permitir a la gente hacer cambios en la memoria que no quieren escribir en la base.

Con object registration, la carga se remueve del caller, el truco aqu es colocar mtodos de registro en los mtodos del objeto. Cargar un objeto a partir de la base de datos registra al objeto como sucio, para que este esquema de trabajo funcione, la unidad de trabajo se debe de pasar a cada objeto o estar en un lugar bien conocido. Pasar la Unidad de trabajo alrededor, es tedioso, pero usualmente no hay problemas de tenerlo presente en algn lugar. Hay que recordar siempre que el desarrollador, debe poner una llamada de registro en los lugares adecuados.

Cuando usarlo
El problema fundamental de la unidad de trabajo es hacer el seguimiento de los distintos objetos que se han manipulado para saber cules debe tener en cuenta para sincronizar los datos de la memoria en la base de datos. Si usted es capaz de hacer todo su trabajo dentro de una transaccin del sistema, los nicos objetos que necesita para preocuparse son los que se alteraron.

Repository
Es un mediador entre el dominio y las capas de data mapping, usando una coleccin como interfaz para acceder a los objetos del dominio.

Data Mapper, asla los objetos de dominio de los detalles del cdigo de acceso a base de datos. En tales sistemas puede ser til para construir otra capa de abstraccin sobre la capa de mapeo donde se concentra el cdigo de construccin de consultas. Esto se hace ms importante cuando hay un gran nmero de clases de dominio o pesados consulta. En estos casos en particular, la adicin de esta capa ayuda a minimizar la lgica de consulta duplicada. Un Repositorio es el mediador entre el dominio y las capas de datos mapeados. Los objetos se pueden agregar y quitar desde el repositorio, ya que pueden partir de una simple coleccin de objetos, y el cdigo de asignacin encapsulado por el Repositorio llevar a cabo las operaciones apropiadas. Conceptualmente, un repositorio encapsula el conjunto de objetos persistido en un almacn de datos y las operaciones que se realizan sobre ellos, proporcionando una visin ms orientada a objetos de la capa de persistencia.

Como funciona
Un repositorio es un tipo sofisticado de modelo, que hace uso de un gran nmero de otros modelos, de hecho parece una pequea pieza de una base de datos orientada a objetos Un repositorio, presenta una interfaz simple. Los clientes crean un objeto de criterio especificando las caractersticas de los objetos que ellos quieren regresar de un query. Por ejemplo, para encontrar a una persona con el mismo nombre:
criteria.equals (Person.LAST_NAME, "Fowler")

Cuando usarlo
En un sistema grande con muchos tipos de dominios de objetos y muchos queries posibles, pero el repositorio, reduce la cantidad de cdigo necesario para hacer los queries, los repositorios, promueven el patrn de especificacin, el cual, encapsula el query para ser realizado de una forma de orientado a objetos pura.

Vous aimerez peut-être aussi