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á consejos para cuidar el lugar donde vivimos.
<http://us.rd.yahoo.com/mail/ar/tagline/beabetter/*http://ar.yahoo.com/promos/mejorambientalista.html>.
------------------------------------------------------------------------
¡Sé un mejor fotógrafo!
Perfeccioná tu técnica y encontrá las mejores fotos
<http://us.rd.yahoo.com/mail/ar/tagline/beabetter/*http://ar.yahoo.com/promos/mejorfotografo.html>.