domain-driven-design - DDD : Where should data be converted, 格式化、加密等?

标签 domain-driven-design data-transfer-objects

对于 future 的项目,我决定使用 dto 将数据传递到域层。这里也是我进行大部分数据验证的地方。

我应该在哪里放置数据格式?

1) 在 DTO 中,当它准备好发送到域层时
或者
2)在它被持久化之前的基础设施层?
或者
3) 在别处:)

即:在保存之前需要加密的密码,或者在存储之前需要转换、调整大小等的图像。

我想将所有数据格式保留在一层中,不喜欢它分散在所有地方。

换句话说:应该为域准备数据来处理它还是域应该获取原始数据并在域处理之后更改它?

最佳答案

数据格式化是一个技术问题,因此它应该由基础设施服务处理,而不是由域处理。例如,密码散列应该由存储相应聚合的存储库处理。格式化也可能发生在 hexagonal architecture 中的适配器中这是 DTO 通常驻留的地方。这种类型的格式取决于手头的适配器类型。例如,您可以考虑将域模型公开为 HTTP 和域模型之间的适配器的 RESTful API。在这种情况下,必须在资源表示和相应的域对象之间执行格式化或转换。

关于domain-driven-design - DDD : Where should data be converted, 格式化、加密等?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12754524/

相关文章:

domain-driven-design - 为什么我不能使用 ERD 为我的域建模?

c# - 使用 Dapper 点网映射域实体的私有(private)属性

c# - 数据传输对象和报告

c++ - 在 C++ 中,如何有效地在两个类之间共享数据?

design-patterns - 让域对象了解数据访问层是不正确的吗?

domain-driven-design - 记录器在 DDD 中的位置?

design-patterns - 设计方法 : use case driven vs. 域驱动

ubuntu - curl:(18)传输关闭,剩余 2 个字节要读取

c# - 使用依赖注入(inject)在构造函数之外创建类的新实例

wcf - WCF 服务应该返回 EntityObject 还是 POCO/DTO 类?