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

罗杰·冈萨雷斯·赫莫萨

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

但是,如果我有一个要从外部库生成 ID 的值对象怎么办?以 UUID 为例。

这并没有污染我的域,但是,我仍然在我的域层中导入了第三方,它应该被放置在基础设施层中。

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

域层中的第三方导入是否有例外?如果是这样,取决于什么?

你们怎么看?

非常感谢

阿温弗

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

当我们说领域层应该保持“纯”时,这意味着您的业务逻辑不应该受到基础设施或表示问题的污染。如果 ID 生成仅用于持久性问题(代理键),那么这是一个基础结构问题,并且此生成应该由持久性存储或基础结构适配器完成。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章