Si j'ai deux entités, Parent
et Child
, Parent
a besoin de connaître tous ses Child
enfants, et tous les Child
exemple a besoin de connaître son instance parent Parent
, comment dois-je faire cela correctement (en termes de DDD etc.)?Comment créer correctement deux entités avec une dépendance cyclique?
La façon simple serait de faire parent.addChild(new Child(parent))
, mais cela semble laid - ainsi que:
parent.addChild(new Child()); // Then call some setParent method on child, which needs to be public
Ai-je besoin d'utiliser ici une usine? Et si oui, comment?
Merci
Oui, mais cela exposerait toujours le "parent setter" à d'autres objets qui voudraient créer un enfant. Mon point est que seul un parent devrait être en mesure de définir le parent d'un enfant. Est-ce une exigence déraisonnable? Ou cela ajouterait-il trop de frais généraux/de complexité? –
@Piotr: C'est le moment où vous devez faire en sorte que le parent et l'enfant soient plus conscients l'un de l'autre. En Java, vous le feriez en les mettant dans le même paquet. En C++, ils auraient un accès entre amis uniquement. (Je sais qu'il doit y avoir un équivalent en C# mais je ne le sais pas.) –
Si votre but est de cacher l'accesseur parent, vous pouvez opter pour une création enfant basée sur un constructeur de type SWT. – Vladimir