Я много исследовал DDD и немного спотыкался о концепции Агрегаты против Совокупных корней.
Скажем, я пытаюсь смоделировать космическую игру, которая существует в строгая иерархия, с сущностью Sector
, которая охватывает все, что в ней содержится. Он может иметь коллекцию PlanetarySystem
, каждая из которых может иметь коллекцию Star
, звезды могут иметь коллекцию Planet
, которые сами могут иметь коллекцию Moon
Я хочу Все эти объекты либо связаны с этим Sector
, расположенным в иерархии, но и с сектором. Каждый элемент может иметь связь 0 или 1 с объектом в иерархии над ним ... плавающим в эфире, если это необходимо. Я хочу иметь возможность удалить Planet
без удаления всех Moon
сущностей, которые у него есть, но это можно сделать по желанию.
Неправильно ли я думать, что каждый из них должен быть их собственным Совокупным Root в этом сценарии со ссылками на совокупные Root экземпляры, которые они содержат? Или Sector
должен быть фактическим Агрегатом Root, управляющим всем как объектом на вершине иерархии?