在DDD中导入域层中的外部库



我正在构建一个基于DDD和Hexagonal Architecture的应用程序。六边形架构建议,比方说,你不应该用其他地方的逻辑污染你的域,你的域层应该是";纯";并且只包含您的业务逻辑。

但是,如果我有一个valueobject,我想从外部库生成一个ID,该怎么办?例如UUID。

这并没有污染我的域,但我仍然在我的域层中导入第三方,它应该放在基础结构层中。

然而,每次我想为时间格式、转换器做这种事情时都要这样做。。。它可能会变得有点乏味。

域层中是否存在第三方导入的例外情况?如果是,取决于什么?

你们怎么想?

非常感谢

DDD指出,业务事项在域层,非业务事项不在域层。如果ID生成是一个业务逻辑,那么在域层中导入该库是没有问题的。它实际上是域层的一部分,尽管您自己并没有维护这一部分。

当我们说域层应该保留";纯";,这意味着您的业务逻辑不应该受到基础结构或表示问题的影响。如果ID生成仅针对持久性问题(代理密钥(,则这是一个基础结构问题,并且此生成应该由持久性存储或基础结构适配器完成。

最新更新