Возврат списка лучших объектов домена - PullRequest
4 голосов
/ 30 января 2012

Я создал инфраструктуру для нового проекта, используя принципы DDD. У меня есть репозитории, которые питают фабрики / гидраторы в домене. Прикладной уровень действует как фасад, расширяя доменные модели для различных моделей просмотра / редактирования по запросу.

Редактировать модели отображаются и объединяются обратно в модель предметной области, которая проверяется серией с использованием быстрой проверки. Любые ошибки регистрируются и возвращаются пользователю через службу ошибок.

Это все работает отлично. Теперь меня интересует, как лучше составить списки этих доменных объектов.

На ум приходит несколько вариантов:

1) Гидратируйте полные доменные модели, а затем сведите их в список. Модели предметной области могут быть кэшированы в виде списка IEnumerable. Затем эта коллекция выравнивается и выталкивается в запрашивающее представление.

2) Создайте «проекционный» объект, который является упрощенным представлением модели предметной области. Это потребует практически никакого увлажнения и может быть проведено через уровень домена и сопоставлено с моделью представления и отображено.

3) «обойти» домен и вызвать службу, вызываемую из прикладного уровня, которая генерирует IEnumerable. Это оставило бы домен чистым.

Я волнуюсь, что решение 1 было бы тяжелым для отображения списка элементов домена. Несмотря на то, что они будут исправлены, из-за возможности поиска в домене, нет никакой гарантии, что кеш принесет много пользы.

Буду признателен за любые советы о том, что будет лучшим вариантом.

1 Ответ

0 голосов
/ 08 февраля 2012

Я предпочитаю решение 2. Необходимо поддерживать чистоту модели домена.

С помощью CQS (командный запрос отделен) мы можем реализовать эффективный и легкий архитектурный запрос будущего.

...