根据 DDD(蓝皮书,Evans),工厂有责任创建处于有效状态的聚合根。这是否意味着它应该能够创建技术 id(mongoDB 世界中的 objectId)以及域 id?
一方面,这似乎是一个技术细节,让 Mongo 处理 ID 的创建似乎没问题。
另一方面,启用按 id 查询(通过getById
在 DDD 存储库中)将技术 id 暴露给域,这反过来又会使工厂负责创建它。
也许我无法理解技术 ID 与 DomainId 的不同用例/重叠等,或者我可能过于热心,但无论如何我都会很感激你的意见。
简而言之:在 DDD 中:工厂是否应该能够创建技术 ID 以及域 ID?
可能的实现:Hi/Lo(如何在 MongoDB Norm 中设置 hilo 序列起始值?)
编辑:虽然 hi/lo 方式将工厂暴露给持久层,但只有存储库应该知道。嗯
谢谢