Question

Je viens juste de commencer en DDD, et je vais avoir un peu mal à comprendre comment tenir compte de la nature relationnelle de mes données. Je crois que ce que je serait considéré comme ma racine globale, mais l'ensemble a également un agrégat propre. Ne voulant pas violer la loi de Déméter, je me demande si je pense à ce mal et espère que certains experts DDD peut offrir un aperçu.

Ma racine globale est mon objet Account, qui a un total de nombreuses entités AccountElement, qui sont eux-mêmes des regroupements logiques d'entités individuelles ProductComponent.

Un AccountElement en dehors du contexte d'un Account n'a pas de sens, donc je suis à l'aise avec ma conclusion que l'objet Account est ma racine globale, et je prévois que l'entité ayant une propriété globale de Elements. Il est la collection ProductComponent qui m'a confondu. Cet agrégat n'a pas de sens en dehors d'un AccountElement, et vraiment n'a pas de sens en dehors d'un Account.

Je ne pense pas que je devrais accéder à des objets individuels ProductComponent par parsèment le chemin à lui, comme:

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

Mais en même temps, il n'a pas de sens (du point de vue de domaine) pour accéder à un ProductComponent directement à partir d'une entité Account.

Je suis sûr que tout cela est un peu difficile à comprendre sans la connaissance de mon domaine, mais je suis en espérant qu'il suffit d'obtenir quelques bons commentaires.

Était-ce utile?

La solution

L'article Robert est liée à un bon. Je voudrais ajouter que si ProductComponent existe seulement dans le contexte de AccountElement et AccountElement existe seulement dans le contexte du compte, puis par extension ProductComponent est dans le contexte du compte.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top