Unidad de trabajo utilizada con más base de datos

Estoy aprendiendo algunos patrones, Unidad de trabajo/repositorio... Hay algunos ejemplos en la web, pero nadie se conecta a más de una base de datos.

En mis aplicaciones casi siempre tengo la necesidad de sacar algún objeto de una base de datos (por ejemplo usuarios) y algún otro objeto de otra, ¿cómo puedo usar los patrones? (Como soy un novato en este tema, un ejemplo explícito es imprescindible)

¡Gracias!

preguntado el 03 de mayo de 12 a las 09:05

¿Hay algo que pueda agregar para aumentar las posibilidades de una respuesta? ¿La pregunta no es clara? -

1 Respuestas

Como referencia general, le aconsejo a usted y a cualquier persona interesada que visite http://martinfowler.com/eaaCatalog/index.html que tiene una colección de UML y una explicación sobre el patrón de diseño más común para software empresarial en su caso específico unidad de trabajo es particularmente adecuado para trabajar junto con Mapeador de datos y Mapa de identidad. Supongo que para comprender la unidad de trabajo al 100%, uno debe dominar también los otros 2 patrones.

Para responder a su pregunta, creo que puede crear una unidad de trabajo y guardarla en un registro, para que esté disponible en toda la aplicación. La unidad debe ser única, ya que debe garantizar una puerta de enlace central para comunicarse con la base de datos. Dentro de su unidad de trabajo tendrá un mapa de identidad que es una colección de objetos valorados en la memoria que representan su modelo y que es responsable de mantener los estados del objeto durante todas las operaciones de la aplicación. Su capa de servicio utilizará la unidad para realizar operaciones CRUD sobre el modelo y confirmar estos cambios. Para trabajar con más bases de datos, supongo que necesita aprovechar algún tipo de acceso de espacio de nombres al objeto almacenado en el mapa de identidad. Tienes la opción de elegir el espacio de nombres: unidad de trabajo o mapa de identidad. La decisión depende realmente de su aplicación y casos de uso. Es posible que deba conectarse a diferentes bases de datos para dividir las responsabilidades entre lectura y escritura o intentar integrar fuentes de datos heterogéneas. Una alternativa sería inyectar el objeto DB en la unidad de métodos de trabajo, en este caso la aplicación tiene un control del 100% sobre qué base de datos se utiliza.

La repositorio El patrón, según tengo entendido, lo ayuda a abstraerse del almacenamiento de su modelo y es particularmente útil cuando trabaja con fuentes de datos heterogéneas, debe proporcionar esa flexibilidad a su aplicación. Por lo tanto, supongo que es bastante diferente de la unidad de trabajo y la capa Data Mapper.

Respondido 30 Oct 12, 15:10

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.