DDD-моделирование, взаимодействие между агрегатными корнями

alt text Пометил мои совокупные корни 1; 2; 3. Выглядит довольно красиво - почти как виноград.

alt text

Мне не нравится объект, помеченный красной стрелкой.

Давайте представим, что:

  • AR # 1 - компания
  • AR # 2 - офис
  • AR # 3 - сотрудник
  • Entity помечено красной стрелкой с именем Страна
    • Компания устанавливает правила, из каких стран она нанимает сотрудников (при найме, company.Countries.Contains (employee.Country) должно быть истинным)

Я каким-то образом вижу эту довольно неважную часть домена (может быть, это не так, как в этом примере), и я хотел бы избежать продвижения Country для агрегирования корня.

Глоссарий об агрегированных корнях говорит:

Временные ссылки на внутренние элементы могут быть переданы для использования только в рамках одной операции.

Итак, кажется ли разумным введение чего-то вроде «EmployeeCountry», удаление ссылки на страну компании и проверка соответствия страны сотрудника какой-либо стране компании при найме на работу?

Какие-нибудь другие идеи?

Как я могу заставить свой виноград выглядеть как они должны?

5
задан Arnis Lapsa 20 August 2010 в 17:22
поделиться