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

Responder a