Leandro: Como vos me tope mucha veces con este problema ya que si uno lo mira desde la perspectiva de base de datos es simple y si lo mira desde la perspectiva desde el modelo del dominio se complica. Como siempre te tengo que decir que depende cada caso ,y no por tirar una frase echa, muchas veces el mismo modelo de base de datos termino siendo dos modelos de dominio no tan iguales en diferentes contextos. Pero para no ser tan teorico te diría los puntos que yo tomaría en cuenta, considerando obviamente los datos que logro entender de tu email y pidiendo disculpas por adelanto de la redacción :)
Como se usa: Más bien es la lógica con la que uso los datos (mejor dichos conceptos el cliente). a- Seguramente se deber saber que límites tiene una cuenta. Esto te llema a que en el respositorio de una cuenta te traiga los limites de la la misma: RepositotioCuenta.GetLimite(cuentaId) b- Querras conocer los limites de las distintas cuentas organizado por timpo de limite RepositorioCuenta.GetLimites() En todos los casos anteriores siempre tenes la cuenta y con sus datos obtenes el limite, es decir, siempre estas parado en el contexto de la cuenta para acceder a un limite. En tu ejemplo de repositirios estas pensando que accedes al tipo limite teniendo el id de la cuenta, ¿pero que pasa si te dan el dni de algunos de los propietarios? , vas a poner otro medoto en el repositorio del limite para obtener por dni (teniendo en cuenta para este ejemplo que un dni sólo puede tener una cuenta para simplificar) o vas al repositorio de la cuenta para obtener el id y despues obtener el límite? Para mi lo más prolijo sería poner en el repositorio RepositorioCuenta.GetLimetes(dni) . O tener un lazy load en el aggregate de cuenta como antes te indico Carlos en un email. "Que despues tecnicamente el respositorio de la cuenta acceda al dao del limite para obtener los datos es otro tema, los repositorios en del domain model están precisamente para abstraerme de estos asuntos (tecnicos)" Saludos, Pablo. ----- Mensaje original ---- De: Leandro Tuttini <[EMAIL PROTECTED]> Para: patrones List Member <patrones@mug.org.ar> Enviado: martes 24 de julio de 2007, 14:42:29 Asunto: [patrones] Repository asignacion de responsabilidad Sebastian, muchas gracias por la respuesta. Te comento, el tema es que la clases que estos nombrando no son agregados, solo se relacionan mediante asociacion, ya que ambas pueden existir sin la existencia de la otra clase. O sea los limites se crean y persisten solitos, al igual que las clases, pero en algun momentos uno se asocia al otro. La cuestion es saber donde colocar los metodos en el respositorio en cual de los dos es correcto que este. O sea se debe hacer : LimiteTipoRepository.GetByCuenta(cuentaId); CuentaRepository.GetLimites(); Los dos metodos por supuesto devuelven un List<LimiteTipo>. Saludos "Sebastian Renzi (Listas)" <[EMAIL PROTECTED]> escribió: Hola Leandro como andas?, te voy a comentar como lo suelo hacer yo, esto no quiere decir que sea lo correcto ni mucho menos. Como regla los value objects y los agregados no tienen repositorios propios, solo los entity los tienen, entonces en tu caso particular según mi vision, la responsabilidad seria de tu repositorio de Clases. Salu2 De: patrones@mug.org.ar [mailto:[EMAIL PROTECTED] En nombre de Leandro Tuttini Enviado el: Martes, 24 de Julio de 2007 10:11 a.m. Para: patrones List Member Asunto: [patrones] Repository asignacion de responsabilidad Hola, que tal. Me surgio una duda que es mas bien conceptual o de diseño y no tan tecnica. Les planteo la situacion a ver que resultado se puede obtener. Resulta que durante el diseño de la persistencia surgieron dudas que es dificil ver que es lo correcto. Tengo por ejemplo una clase de nombre "Cuenta", que por supuesto tiene su repositorio, esta clase se une por medio de una relacion mucho a mucho con la clase "Tipo de Limites", que por supuesto tambien tiene su repositorio. Se que mietras se diseña no se piensa en relaciones pero es simplemente para contarles la problematica. La cuestion es si debo agregar el metodo para recuperar la lista de tipos de limites asociados a la cuenta, donde deberia agregarse este metodo?, o sea en que repositorio. La logica indica que el metodo devolvera una lista de "tipos de limites", (previo pasaje del identidicador de cuenta), por lo que deberia ir en el repositorio de "Tipos de limites". Pero tambien sabemos que las cuentas por su relacion con los "tipos de limites" seran las unicas interesadas en recuperar esta relacion, por lo que agregarlo al repositorio de cuentas no estaria del todo mal. La cuestion es, cual es la correcta. Bueno como veran no es una pregunta tecnica, sino mas bien de diseño, como se deberia razonar en estos casos. Gracias Saludos ¡Sé un mejor ambientalista! Encontrá consejos para cuidar el lugar donde vivimos.. ¡Sé un mejor ambientalista! Encontrá consejos para cuidar el lugar donde vivimos.. ____________________________________________________________________________________ ¡Sé un mejor besador! Compartí todo lo que sabés sobre besos. http://ar.yahoo.com/promos/mejorbesador.html