Согласно DDD (Синяя книга, Эванс) фабрика несет ответственность за создание сводного корня в допустимом состоянии. Означает ли это, что он должен иметь возможность создавать технический идентификатор (objectId в мире mongoDB), а также идентификатор домена?
С одной стороны, это кажется технической деталью, и было бы нормально позволить Mongo заняться созданием идентификатора.
С другой стороны, включение запросов по идентификатору (при наличии getById
в репозитории DDD) предоставляет домену технический идентификатор, что, в свою очередь, возлагает ответственность на Фабрику за его создание.
Возможно, я не могу понять различные варианты использования/перекрытия и т. д. технических идентификаторов и доменных идентификаторов, или, возможно, я переусердствую, но в любом случае я был бы признателен за ваше мнение.
Вкратце: В DDD: Должна ли фабрика иметь возможность создавать технический идентификатор, а также идентификатор домена?
возможная реализация: Hi/Lo ( Как установить начальное значение последовательности hilo в MongoDB Norm?)
РЕДАКТИРОВАТЬ: хотя способ hi/lo подвергает Фабрику уровню сохраняемости, о чем должен знать только Репозиторий. Хм
Спасибо