Pregunta

Estoy empezando en DDD, y estoy teniendo algunos problemas para encontrar la manera de dar cabida a la naturaleza relacional de mis datos. Tengo lo que yo creo que se consideraría mi raíz agregada, pero el agregado también tiene un agregado de su propio. Sin querer violar la Ley de Demeter, me pregunto si estoy pensando en este mal y estoy esperando que algún experto DDD puede ofrecer una cierta penetración.

Mi raíz agregada es mi objeto Account, que tiene un agregado de numerosas entidades AccountElement, que son en sí mismas agrupaciones lógicas de las entidades ProductComponent individuales.

Una AccountElement fuera del contexto de un Account no tiene sentido, por lo que estoy a gusto con mi conclusión de que el objeto Account es mi raíz agregada, y anticipo que la entidad tiene una propiedad Elements agregado. Es la colección ProductComponent que me tiene confundido. Este agregado tiene ningún significado fuera de un AccountElement, y realmente no tiene sentido fuera de un Account.

No creo que debería estar accediendo a los objetos individuales por ProductComponent salpican mi camino a ella, como:

var reference = account.Elements(0).ProductComponents(0).ReferenceCode;

Pero, al mismo tiempo que no tiene sentido (desde una perspectiva de dominio) para acceder a un ProductComponent directamente de una entidad Account.

Estoy seguro de que todo esto es un poco difícil de comprender sin el conocimiento de mi dominio, pero espero que sea suficiente para obtener una buena retroalimentación.

¿Fue útil?

Solución

El artículo de Robert es vinculado a una buena. Yo añadiría que si ProductComponent existe sólo en el contexto de AccountElement y AccountElement existe sólo en el contexto de la cuenta, a continuación, por extensión ProductComponent es en el contexto de la cuenta.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top