Это действительно зависит от ваших требований/окружающей среды.
например. у вас есть двунаправленные зависимости. Некоторым приходится беспокоиться, но это приятно для клиента, использующего это. Что важнее? Вам действительно нужно ориентироваться в обоих направлениях более или менее одинаково часто?
Вы храните полные объекты. Возможно, вы должны хранить прокси вместо или id и репозиторий. Никто не может сказать, пока мы не узнаем о ваших требованиях, как функциональных, так и нефункциональных.
На самом деле, если у вас нет требований, дизайн неправильный, потому что у вас не должно быть класса, если это не поможет выполнить требование.
В разработке программного обеспечения нет абсолютного или неправильного права. Если такое решение будет возможно, нам не нужно будет делать это вручную, он будет доступен как языковая функция на каждом современном языке. Дизайн касается понимания требований и понимания решения по дизайну эффектов, которое зависит от степени выполнения этих требований.
Так что, если вы хотите узнать о дизайне, попробуйте следующее:
Возьмите простые функциональные требования и думать о том, как ваши конструктивных изменениях с изменением неработоспособного требования: он должен работать на чип-карте; он должен обрабатывать тысячи запросов в секунду. Много писем, мало читает; Много читает, мало пишет. ...
Всегда ли правда, что сотрудник принадлежит к одному отделу? Во многих корпорациях это не так. – JonH
Как насчет иерархии департаментов? –
Вы должны дать более подробную информацию о контексте –