Если у меня есть две сущности, Parent
и Child
, Parent
должен знать обо всех своих Child
детей, и каждый Child
экземпляр должен знать о его родительского экземпляра Parent
, как делать это правильно (с точки зрения DDD и т.д.)?Как правильно создать два объекта с циклической зависимостью?
Самый простой способ будет делать parent.addChild(new Child(parent))
, но это, кажется, некрасиво - так же, как:
parent.addChild(new Child()); // Then call some setParent method on child, which needs to be public
мне нужно использовать фабрику здесь делать? И если да, то как?
Благодаря
Да, но это все равно вывело бы «родительский сеттер» на любые другие объекты, которые хотели бы создать ребенка. Я хочу сказать, что только родитель должен иметь возможность установить родительский элемент дочернего элемента. Это необоснованное требование? Или это добавит слишком много накладных расходов/сложности? –
@Piotr: Это тот момент, когда нужно, чтобы родители и дети более глубоко осознавали друг друга. В Java вы сделаете это, поставив их в один и тот же пакет. В C++ у них был бы доступ только друг к другу. (Я знаю, что в C# должен быть эквивалент, но я этого не знаю.) –
Если вы хотите скрыть родительский сеттер, вы можете пойти на создание дочернего образа на основе конструктора на основе SWT. – Vladimir