DDD: использовать ли сущности при построении отчётов?
В моём приложении репозиторий возвращает рекордсет в виде однородной коллекции entity. Entity и репозиторий относятся к одной и тоже сущности, например, Owner: Repository_Owner вернёт коллекцию объектов класса Entity_Owner.
Что делать, если репозиторий должен вернуть разнородные данные? Например, отчёт или статистику, вроде данные владельца и какие-то цифры по каждому: сколько объектов имеет, суммарные\средние финансовые показатели, и т.д.
Либо заводить под каждый тип отчёта свою entity или value object, но тогда их трудно нормально назвать, потому что в предметной области они ничего из себя не представляют и поименовать их сложно. Отчёт и отчёт.
Либо возвращать просто массив и отображать как есть — но это как-то не тру, не DDD.
Что делать, если репозиторий должен вернуть разнородные данные?
Наверное, неверно когда репозиторий возвращает разнородные данные. Репозиторий — это коллекция объектов в первую очередь. Использовать его как DAL, имхо, дурной тон. Пишем свой ReceiptStatisticCalculator, MonthOrdersReportManager и т.д.
тогда их трудно нормально назвать, потому что в предметной области они ничего из себя не представляют
Пообщайтесь с вашим экономистом или бухгалтером. Мне помогло. Отчеты вполне находят себе представление в предметной области.
У себя использую отдельные объекты для отчетов/статистики. Просто, удобно, и всегда понятно что это и с чем его готовить.