Todavía me estoy volviendo loco con DDD, y uno de los obstáculos que he encontrado es cómo manejar asociaciones entre agregados separados. Digamos que tengo un agregado encapsulando Clientes y otros Envíos encapsulados.¿Cómo se manejan las asociaciones entre los agregados en DDD?
Por razones comerciales Los envíos son sus propios agregados, y sin embargo, deben estar vinculados explícitamente a los clientes. ¿Mi entidad de dominio del cliente debe tener una lista de envíos? Si es así, ¿cómo llené esta lista en el nivel del repositorio, dado que tendré un CustomerRepository y un ShipmentRepository (un repositorio por agregado)?
Estoy diciendo 'asociación' en lugar de 'relación' porque quiero enfatizar que esta es una decisión de dominio, no de infraestructura. Primero estoy diseñando el sistema desde el modelo.
Editar: Sé que no necesito modelar las tablas directamente a los objetos; esa es la razón por la que estoy diseñando el modelo primero. En este punto, no me importa en absoluto la base de datos, solo las asociaciones entre estos dos agregados.
ddd ¿no es esa la herramienta gnu http://www.gnu.org/software/ddd/? ¿Desde cuándo ddd representa el diseño impulsado por dominio? – Johan
@ Johan - hace un tiempo, ahora - http://domaindrivendesign.org/ –
@Erik, así las cosas cambian y también lo hacen las versiones cortas de las palabras largas. – Johan