Я только начинаю работать в DDD, и у меня возникают проблемы с тем, как учитывать реляционный характер моих данных. У меня есть то, что, по моему мнению, будет считаться моим совокупным корнем, но совокупность также имеет своя совокупность. Не желая нарушать Закон Деметры, мне интересно, думаю ли я об этом неправильно, и надеюсь, что какой-то эксперт DDD может предложить некоторое понимание.
Мой агрегированный корень - это мой объект Account, который содержит совокупность многочисленных объектов AccountElement, которые сами являются логическими группировками отдельных объектов ProductComponent.
An AccountElement вне контекста Account не имеет смысла, поэтому мне приятно с моим заключением, что объект Account является моим агрегированным корнем, и я ожидаю, что объект, имеющий агрегат Elements имущество. Это коллекция ProductComponent, которая меня смущает. Этот агрегат не имеет значения вне AccountElement и не имеет никакого значения за пределами Account.
Я не думаю, что я должен получить доступ к отдельным объектам ProductComponent, поставив свой путь к нему, например:
var reference = account.Elements(0).ProductComponents(0).ReferenceCode;
Но в то же время не имеет смысла (с точки зрения домена) получить доступ к ProductComponent непосредственно из объекта Account.
Я уверен, что это немного сложно понять без знания моего домена, но я надеюсь, что этого достаточно, чтобы получить хорошую обратную связь.