можно ли выбрать самоссылающийся класс в качестве совокупного корня
Если бы мне пришлось выразить большое иерархическое однородное дерево в качестве совокупного корня, я бы, скорее всего, ввел другой класс (однородныйкроме корневого объекта) для корневого объекта, такого как CategoryRoot 1--* Category 1--* Category
, что устраняет необходимость задавать этот вопрос.
Если вы действительно хотите тот же класс (не уверен, целесообразно ли это), тогда вам все равно понадобитсясуществует какой-то протокол, чтобы убедиться, что корневой экземпляр обрабатывается иначе, чем дочерние объекты, хотя они одного класса.Например, вам нужно только разрешить репозиториям возвращать экземпляры верхнего уровня Category
(например, parent = null
), а вложенные экземпляры Category
нельзя делать доступными или ссылаться на них без их корня.