DDD:数据应该转换,格式化,加密等在哪里?

时间:2012-10-05 21:50:54

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

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

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

1)在DTO中准备好发送到域层时 OR
2)在持久化之前的基础设施层中? OR
3)其他地方:)

即。 :密码需要在保留之前加密,或者在存储之前需要转换,重新调整等图像。

我希望将所有数据格式保存在一个层中,不要让它在整个地方都得到满足。

换句话说:数据是否应该为域准备处理它,或者域应该获取原始数据并在域被域处理后进行更改?

1 个答案:

答案 0 :(得分:5)

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