Генерация идентификаторов для сущностей в DDDC#

Место общения программистов C#
Anonymous
Генерация идентификаторов для сущностей в DDD

Сообщение Anonymous »

Изменить

Чтобы еще больше прояснить мою первоначальную проблему, я переписал вопрос, добавив больше терминов «DDD», общих шаблонов и аргументов для обсуждения. Исходную версию можно найти в разделе «Редакция».




Где и как идентификаторы для объектов/агрегированных корней генерируются внутри домена при правильном применении DDD?


Мне нужно назначить уникальные идентификаторы моим объектам либо при создании, либо упорный. Эти идентификаторы могут быть нескольких стилей.
  • Вычисляемые (на основе характеристик объекта и, следовательно, на основе бизнес-требований)
  • Естественные (на основе определенного набора правил и, следовательно, на основе бизнес-логики)
  • Суррогатные (основанные на случайно сгенерированных значениях, не имеющих бизнес-значения)
Существует множество подходов к решению этой задачи генерации и назначения удостоверений, от использования фабрик для создания удостоверений, делегирования в инфраструктуру с использованием ORM или генерации базы данных и т. д. Однако, если правильно применять DDD, где и как следует генерировать удостоверения, учитывая, что нам не нужны анемичные модели доменов и внедрение сервисов в объекты?

Требования как указано выше
  • Нет анемичных доменных моделей
  • Нет внедрения зависимостей сервисов в объекты
Возможные подходы
  • Фабрики
  • Двойная диспетчеризация (можно ли это использовать для идентификации генерация?)
  • Генерация внутри репозиториев
  • Генерация внутри инфраструктуры (например, ORM или база данных)
  • Внедрение сервисов в объекты

Вернуться в «C#»