Сортировать ответ на ваш вопрос является стандартным Это зависит .
Как правило, никогда не делайте этого. Держите свои сущности без ссылок на репозитории.
[ надеть практическую шапку ] В некоторых редких, очень редких случаях, когда у вас есть очень, очень, очень веская причина для этого, чем добавить большой комментарий, объясняющий, почему вы это делаете и делаете - добавьте ссылку или используйте Double Dispatch для передачи хранилища [ hat off ]
Также, если вы хотите следовать принципам DDD, настоятельно рекомендуется иметь доступ к эксперту по предметной области и итеративному процессу разработки (см. Эрик Эванс - то, что я узнал со времен книги ).
Вместе со своим экспертом по домену вы должны определить ограничивающие контексты и, что наиболее важно, агрегаты и их совокупные корни, а также их сущности и объекты значений. Спуститься по дороге DDD поначалу непросто, но слова повторяются.
Несколько вещей относительно кода, который вы разместили:
Не рекомендуется использовать общедоступные сеттеры для ваших сущностей. Вместо этого используйте методы, которые лучше выражают намерение.
Если экземпляр лица создается без инициализации поля _employer, метод получения свойства Employer возвращает ноль. Если затем вы установите значение свойства Employer в значение null, следующий вызов метода получения вернет ненулевое значение. Вероятно, это неожиданно для пользователей вашего класса.
Вызывающий абонент, устанавливающий Employer of Person (либо с помощью общедоступного установщика, либо с помощью общедоступного метода), должен знать точный экземпляр Company, который он должен установить, даже если он установлен по умолчанию. Возможно, вызывающая сторона может иметь ссылку на хранилище.
В зависимости от вашего конкретного домена Компания может быть ценным объектом. В этом случае вместо инициализации _employer с нулевым значением вы можете инициализировать его значением по умолчанию для объекта значения. Это может быть в том случае, если у вас очень мало компаний (1-2), и они неизменны и не имеют определенного поведения.