Кажется, что решение сделать ваши объекты полностью осведомленными о своих ролях внутри системы и все же избежать слишком большого количества зависимостей в модели домена в базе данных и слоях обслуживания?
Например: скажите, что у меня есть объект с историей ревизий и несколько "таблиц поиска", которые ссылаются на данные, ваш объект объекта должен иметь методы для получения сведений из некоторых таблиц поиска, будь то путем предоставления доступ к строкам таблицы поиска или делегирование им методов, но для этого он зависит от уровня базы данных для чтения данных из этих строк. Кроме того, когда объект сохраняется, он должен знать не только о том, как сохранить себя, но и сохранить записи в истории изменений. Нужно ли передавать ссылки на десятки разных объектов уровня данных и объектов обслуживания на объект модели? Это похоже на то, что логика намного сложнее понять, чем просто передавать тонкие модели для обслуживания объектов уровня, но я слышал, что многие "мудрые люди" рекомендуют такую структуру.