[patrones] Repository asignacion de responsabilidad

2007-07-26 Por tema Carlos Peix
En el caso que planteas, es asi como yo los armo, un repositorio para cada
aggregate, independientemente del tipo de query que necesites hacer. En otras
palabras, el repositorio debe devolver siempre el mismo tipo, o coleccion de ese
tipo.
 
Carlos


  _  

From: patrones@mug.org.ar [mailto:[EMAIL PROTECTED] On Behalf Of Leandro
Tuttini
Sent: Jueves, 26 de Julio de 2007 03:09 p.m.
To: patrones List Member
Subject: [patrones] Repository asignacion de responsabilidad


Mil gracias a todos por las respuestas, la verdad son de mucha ayuda, para
acercarse a la verdad.
 
En resumen, si es un agregate deberia este repositorio (en este caso el de
cuentas) quien maneje a la entidad y su agregado, por ejemplo, al guardarse, lo
haga de los dos en este caso la cuenta y sus tipos asociados. 
Deberia llamar a dos store procedure, por ejemplo, o ejecutar dos insert sql,
pero sin tener el repositorio de TiposLimites.
 
Ahora si son dos tipos que solo se asocian cada uno deberia tener su propio
repositorio cada entidad, (o sea es este caso que plantee), y es por medio de
repositorio de TiposLimites que deberia recuperar la lista asociada con una
cuenta en particular.
En este caso cada llamada a store procedure, o insert sql, estaran en cada
repositorio separado.
 
Seria asi, o nuevamente le estoy errando.
 
Saludos

Pedro Wood <[EMAIL PROTECTED]> escribió:

Hola Leandro,

Para mi un repositorio es específico de un tipo, es un repositorio de 
"algo" y ese algo es 1 tipo en particular. O sea un repositorio devuelve 
un tipo en particular.

Claro que el tipo podría ser una jerarquía de clases o un interfaz con 
diferentes implementaciones. Pero un RepositorioDeCuenta (o quizás un 
Repositorio), ya te indica qué es lo que devuelve, o un objeto 
Cuenta o una colección de objetos Cuenta.
Podría ser que Cuenta tenga 2 o más subtipos y uses un sólo repositorio, 
con lo cual te devolvería CuentaX y CuentaY, pero no que devuelva otro 
tipo como TipoDeLimite.
(Esto por más que tengas implementado un repositorio genérico, porque 
igual le tendrías que pasar el tipo que querés que te devuelva y eso 
otra vez lo convierte en un repositorio de un tipo en particular).

Después si Cuenta tiene alguna relación con TipoDeLimite es otro tema. 
Si es parte de un aggregate entonces lo traerá directamente el ORM o el 
mapper.
Pero si en tu caso es un root de un aggregate entonces para mi tenés que 
pasar a través del repositorio de TipoDeLimite.

Saludos,

Pedro



Carlos Peix escribió:
> Hola Leandro,
> 
> Yo uso solo estos dos lineamientos para definir la interfaz de un 
> repositorio:
> 
> - En general, cada aggregate root, tiene su repositorio.
> - La interfaz del repositorio es similar a la de una coleccion. Es una 
> coleccion de objetos del tipo del aggregate root. Sus metodos serian: 
> Add(), Remove(), GetById(), GetByCriteria(), etc.
> 
> En otras palabras, siempre que necesites una o mas instancias del 
> aggregate root deberias accederlas mediante el repositorio con el 
> query correspondiente.
> 
> Carlos
>
> 
> *From:* patrones@mug.org.ar [mailto:[EMAIL PROTECTED] *On
> Behalf Of *Leandro Tuttini
> *Sent:* Miércoles, 25 de Julio de 2007 10:36 a.m.
> *To:* patrones List Member
> *Subject:* [patrones] Repository asignacion de responsabilidad
>
> Hola Carlos, gracias por la repuesta.
> 
> Es mas o menos es lo que me imaginaba, poner el metodo que
> devuelve la lista de tipos de limite asociado a la cuenta en el
> repositorio de tipo de limite.
> 
> Por supuesto la entidad cuenta tendra su propiedad que devuelva
> esta lista de tipos, pero lo hara mediante la interfaz del
> repositorio de tipos de limite y de seguro algun Factory.
> 
> La logica aplicada es mas o menos la que mencionaba, o sea se
> analiza lo que se devuelve y se asigna la responsabilidad a la
> clase que meneja esta, o hay algo mas genericos?.
> 
> 
> Gracias
>
> */Carlos Peix /* escribió:
>
> Hola Leandro,
> 
> En el caso que describis el metodo, si fuese necesario, iria
> en el repositorio de tipos de limite.Sin embargo, creo que el
> repositorio de cuentas deberia deveolver una cuenta con su
> coleccion de tipos de limite, usando Lazy load por ejemplo.
> 
> Carlos
>
> 
> *From:* patrones@mug.org.ar [mailto:[EMAIL PROTECTED]
> *On Behalf Of *Leandro Tuttini
> *Sent:* Martes, 24 de Julio de 2007 10:11 a.m.
> *To:* patrones List Member
> *Subject:* [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 per

[patrones] Repository asignacion de responsabilidad

2007-07-26 Por tema Leandro Tuttini
Mil gracias a todos por las respuestas, la verdad son de mucha ayuda, para 
acercarse a la verdad.
   
  En resumen, si es un agregate deberia este repositorio (en este caso el de 
cuentas) quien maneje a la entidad y su agregado, por ejemplo, al guardarse, lo 
haga de los dos en este caso la cuenta y sus tipos asociados. 
  Deberia llamar a dos store procedure, por ejemplo, o ejecutar dos insert sql, 
pero sin tener el repositorio de TiposLimites.
   
  Ahora si son dos tipos que solo se asocian cada uno deberia tener su propio 
repositorio cada entidad, (o sea es este caso que plantee), y es por medio de 
repositorio de TiposLimites que deberia recuperar la lista asociada con una 
cuenta en particular.
  En este caso cada llamada a store procedure, o insert sql, estaran en cada 
repositorio separado.
   
  Seria asi, o nuevamente le estoy errando.
   
  Saludos

Pedro Wood <[EMAIL PROTECTED]> escribió:
  Hola Leandro,

Para mi un repositorio es específico de un tipo, es un repositorio de 
"algo" y ese algo es 1 tipo en particular. O sea un repositorio devuelve 
un tipo en particular.

Claro que el tipo podría ser una jerarquía de clases o un interfaz con 
diferentes implementaciones. Pero un RepositorioDeCuenta (o quizás un 
Repositorio), ya te indica qué es lo que devuelve, o un objeto 
Cuenta o una colección de objetos Cuenta.
Podría ser que Cuenta tenga 2 o más subtipos y uses un sólo repositorio, 
con lo cual te devolvería CuentaX y CuentaY, pero no que devuelva otro 
tipo como TipoDeLimite.
(Esto por más que tengas implementado un repositorio genérico, porque 
igual le tendrías que pasar el tipo que querés que te devuelva y eso 
otra vez lo convierte en un repositorio de un tipo en particular).

Después si Cuenta tiene alguna relación con TipoDeLimite es otro tema. 
Si es parte de un aggregate entonces lo traerá directamente el ORM o el 
mapper.
Pero si en tu caso es un root de un aggregate entonces para mi tenés que 
pasar a través del repositorio de TipoDeLimite.

Saludos,

Pedro



Carlos Peix escribió:
> Hola Leandro,
> 
> Yo uso solo estos dos lineamientos para definir la interfaz de un 
> repositorio:
> 
> - En general, cada aggregate root, tiene su repositorio.
> - La interfaz del repositorio es similar a la de una coleccion. Es una 
> coleccion de objetos del tipo del aggregate root. Sus metodos serian: 
> Add(), Remove(), GetById(), GetByCriteria(), etc.
> 
> En otras palabras, siempre que necesites una o mas instancias del 
> aggregate root deberias accederlas mediante el repositorio con el 
> query correspondiente.
> 
> Carlos
>
> 
> *From:* patrones@mug.org.ar [mailto:[EMAIL PROTECTED] *On
> Behalf Of *Leandro Tuttini
> *Sent:* Miércoles, 25 de Julio de 2007 10:36 a.m.
> *To:* patrones List Member
> *Subject:* [patrones] Repository asignacion de responsabilidad
>
> Hola Carlos, gracias por la repuesta.
> 
> Es mas o menos es lo que me imaginaba, poner el metodo que
> devuelve la lista de tipos de limite asociado a la cuenta en el
> repositorio de tipo de limite.
> 
> Por supuesto la entidad cuenta tendra su propiedad que devuelva
> esta lista de tipos, pero lo hara mediante la interfaz del
> repositorio de tipos de limite y de seguro algun Factory.
> 
> La logica aplicada es mas o menos la que mencionaba, o sea se
> analiza lo que se devuelve y se asigna la responsabilidad a la
> clase que meneja esta, o hay algo mas genericos?.
> 
> 
> Gracias
>
> */Carlos Peix 
/* escribió:
>
> Hola Leandro,
> 
> En el caso que describis el metodo, si fuese necesario, iria
> en el repositorio de tipos de limite.Sin embargo, creo que el
> repositorio de cuentas deberia deveolver una cuenta con su
> coleccion de tipos de limite, usando Lazy load por ejemplo.
> 
> Carlos
>
> 
> *From:* patrones@mug.org.ar [mailto:[EMAIL PROTECTED]
> *On Behalf Of *Leandro Tuttini
> *Sent:* Martes, 24 de Julio de 2007 10:11 a.m.
> *To:* patrones List Member
> *Subject:* [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 p

[patrones] Repository asignacion de responsabilidad

2007-07-26 Por tema Pedro Wood

Hola Leandro,

Para mi un repositorio es específico de un tipo, es un repositorio de 
"algo" y ese algo es 1 tipo en particular. O sea un repositorio devuelve 
un tipo en particular.


Claro que el tipo podría ser una jerarquía de clases o un interfaz con 
diferentes implementaciones. Pero un RepositorioDeCuenta (o quizás un 
Repositorio), ya te indica qué es lo que devuelve, o un objeto 
Cuenta o una colección de objetos Cuenta.
Podría ser que Cuenta tenga 2 o más subtipos y uses un sólo repositorio, 
con lo cual te devolvería CuentaX y CuentaY, pero no que devuelva otro 
tipo como TipoDeLimite.
(Esto por más que tengas implementado un repositorio genérico, porque 
igual le tendrías que pasar el tipo que querés que te devuelva y eso 
otra vez lo convierte en un repositorio de un tipo en particular).


Después si Cuenta tiene alguna relación con TipoDeLimite es otro tema. 
Si es parte de un aggregate entonces lo traerá directamente el ORM o el 
mapper.
Pero si en tu caso es un root de un aggregate entonces para mi tenés que 
pasar a través del repositorio de TipoDeLimite.


Saludos,

Pedro



Carlos Peix escribió:

Hola Leandro,
 
Yo uso solo estos dos lineamientos para definir la interfaz de un 
repositorio:
 
- En general, cada aggregate root, tiene su repositorio.
- La interfaz del repositorio es similar a la de una coleccion. Es una 
coleccion de objetos del tipo del aggregate root. Sus metodos serian: 
Add(), Remove(), GetById(), GetByCriteria(), etc.
 
En otras palabras, siempre que necesites una o mas instancias del 
aggregate root deberias accederlas mediante el repositorio con el 
query correspondiente.
 
Carlos



*From:* patrones@mug.org.ar [mailto:[EMAIL PROTECTED] *On
Behalf Of *Leandro Tuttini
*Sent:* Miércoles, 25 de Julio de 2007 10:36 a.m.
*To:* patrones List Member
*Subject:* [patrones] Repository asignacion de responsabilidad

Hola Carlos, gracias por la repuesta.
 
Es mas o menos es lo que me imaginaba, poner el metodo que

devuelve la lista de tipos de limite asociado a la cuenta en el
repositorio de tipo de limite.
 
Por supuesto la entidad cuenta tendra su propiedad que devuelva

esta lista de tipos, pero lo hara mediante la interfaz del
repositorio de tipos de limite y de seguro algun Factory.
 
La logica aplicada es mas o menos la que mencionaba, o sea se

analiza lo que se devuelve y se asigna la responsabilidad a la
clase que meneja esta, o hay algo mas genericos?.
 
 
Gracias


*/Carlos Peix <[EMAIL PROTECTED]>/* escribió:

Hola Leandro,
 
En el caso que describis el metodo, si fuese necesario, iria

en el repositorio de tipos de limite.Sin embargo, creo que el
repositorio de cuentas deberia deveolver una cuenta con su
coleccion de tipos de limite, usando Lazy load por ejemplo.
 
Carlos




*From:* patrones@mug.org.ar [mailto:[EMAIL PROTECTED]
*On Behalf Of *Leandro Tuttini
*Sent:* Martes, 24 de Julio de 2007 10:11 a.m.
*To:* patrones List Member
*Subject:* [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 e

[patrones] Repository asignacion de responsabilidad

2007-07-26 Por tema Carlos Peix
Hola Leandro,
 
Yo uso solo estos dos lineamientos para definir la interfaz de un repositorio:
 
- En general, cada aggregate root, tiene su repositorio.
- La interfaz del repositorio es similar a la de una coleccion. Es una coleccion
de objetos del tipo del aggregate root. Sus metodos serian: Add(), Remove(),
GetById(), GetByCriteria(), etc.
 
En otras palabras, siempre que necesites una o mas instancias del aggregate root
deberias accederlas mediante el repositorio con el query correspondiente.
 
Carlos


  _  

From: patrones@mug.org.ar [mailto:[EMAIL PROTECTED] On Behalf Of Leandro
Tuttini
Sent: Miércoles, 25 de Julio de 2007 10:36 a.m.
To: patrones List Member
Subject: [patrones] Repository asignacion de responsabilidad


Hola Carlos, gracias por la repuesta.
 
Es mas o menos es lo que me imaginaba, poner el metodo que devuelve la lista de
tipos de limite asociado a la cuenta en el repositorio de tipo de limite.
 
Por supuesto la entidad cuenta tendra su propiedad que devuelva esta lista de
tipos, pero lo hara mediante la interfaz del repositorio de tipos de limite y de
seguro algun Factory.
 
La logica aplicada es mas o menos la que mencionaba, o sea se analiza lo que se
devuelve y se asigna la responsabilidad a la clase que meneja esta, o hay algo
mas genericos?.
 
 
Gracias

Carlos Peix <[EMAIL PROTECTED]> escribió:

Hola Leandro,
 
En el caso que describis el metodo, si fuese necesario, iria en el repositorio
de tipos de limite.Sin embargo, creo que el repositorio de cuentas deberia
deveolver una cuenta con su coleccion de tipos de limite, usando Lazy load por
ejemplo.
 
Carlos


  _  

From: patrones@mug.org.ar [mailto:[EMAIL PROTECTED] On Behalf Of Leandro
Tuttini
Sent: Martes, 24 de Julio de 2007 10:11 a.m.
To: patrones List Member
Subject: [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á
<http://us.rd.yahoo.com/mail/ar/tagline/beabetter/*http://ar.yahoo.com/promos/me
jorambientalista.html> consejos para cuidar el lugar donde vivimos..





  _  


¡Sé un mejor fotógrafo!
Perfeccioná
<http://us.rd.yahoo.com/mail/ar/tagline/beabetter/*http://ar.yahoo.com/promos/me
jorfotografo.html> tu técnica y encontrá las mejores fotos.




[patrones] Repository asignacion de responsabilidad

2007-07-25 Por tema Pablo Delbuono
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 
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.
 
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á conse

[patrones] Repository asignacion de responsabilidad

2007-07-25 Por tema Leandro Tuttini
Hola Carlos, gracias por la repuesta.
   
  Es mas o menos es lo que me imaginaba, poner el metodo que devuelve la lista 
de tipos de limite asociado a la cuenta en el repositorio de tipo de limite.
   
  Por supuesto la entidad cuenta tendra su propiedad que devuelva esta lista de 
tipos, pero lo hara mediante la interfaz del repositorio de tipos de limite y 
de seguro algun Factory.
   
  La logica aplicada es mas o menos la que mencionaba, o sea se analiza lo que 
se devuelve y se asigna la responsabilidad a la clase que meneja esta, o hay 
algo mas genericos?.
   
   
  Gracias

Carlos Peix <[EMAIL PROTECTED]> escribió:
  Hola Leandro,
   
  En el caso que describis el metodo, si fuese necesario, iria en el 
repositorio de tipos de limite.Sin embargo, creo que el repositorio de cuentas 
deberia deveolver una cuenta con su coleccion de tipos de limite, usando Lazy 
load por ejemplo.
   
  Carlos

  
-
  From: patrones@mug.org.ar [mailto:[EMAIL PROTECTED] On Behalf Of Leandro 
Tuttini
Sent: Martes, 24 de Julio de 2007 10:11 a.m.
To: patrones List Member
Subject: [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 fotógrafo!
Perfeccioná tu técnica y encontrá las mejores fotos.


[patrones] Repository asignacion de responsabilidad

2007-07-24 Por tema Carlos Peix
Hola Leandro,
 
En el caso que describis el metodo, si fuese necesario, iria en el repositorio
de tipos de limite.Sin embargo, creo que el repositorio de cuentas deberia
deveolver una cuenta con su coleccion de tipos de limite, usando Lazy load por
ejemplo.
 
Carlos


  _  

From: patrones@mug.org.ar [mailto:[EMAIL PROTECTED] On Behalf Of Leandro
Tuttini
Sent: Martes, 24 de Julio de 2007 10:11 a.m.
To: patrones List Member
Subject: [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á
<http://us.rd.yahoo.com/mail/ar/tagline/beabetter/*http://ar.yahoo.com/promos/me
jorambientalista.html> consejos para cuidar el lugar donde vivimos..




[patrones] Repository asignacion de responsabilidad

2007-07-24 Por tema Leandro Tuttini
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.
   
  Saludos

"Sebastian Renzi (Listas)" <[EMAIL PROTECTED]> escribió:
v\:* {behavior:url(#default#VML);}  o\:* {behavior:url(#default#VML);}  
w\:* {behavior:url(#default#VML);}  .shape {behavior:url(#default#VML);}
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..


[patrones] Repository asignacion de responsabilidad

2007-07-24 Por tema Sebastian Renzi \(Listas\)
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á
<http://us.rd.yahoo.com/mail/ar/tagline/beabetter/*http:/ar.yahoo.com/promos
/mejorambientalista.html>  consejos para cuidar el lugar donde vivimos..



[patrones] Repository asignacion de responsabilidad

2007-07-24 Por tema Leandro Tuttini
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..