假设我的域中有一个“项目”实体,它需要生成一个唯一的 ID(在正常数字 ID 之上),每个项目由 2 个字母 + 4 个数字组成。该 id 在所有项目中必须是唯一的。
我很难放置此功能,感觉它几乎只应该在第一次保存项目时才放置在存储库中。
我确信它不属于应用程序服务,我不确定它是否是任何业务层关注的领域服务,并且将其作为基础设施服务感觉很奇怪,但它确实需要检查是否存在任何其他项目具有随机生成的 [LL]-[DDDD]
类似代码。
即使我将此代码放在存储库中。save 它仍然需要从某个地方调用某些内容,所以问题是,我应该在哪里放置一个为我提供这样的免费随机 ID 的服务?
最佳答案
作为域一部分的 ID 应由域生成。
如果域没有定义任何 ID,您也不应该在域中公开它们(严格来说,但以任何一种方式包含它们可能更容易)。
关于oop - 在DDD架构中,唯一ID生成属于哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17070587/