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

Tud*_*dor 6 domain-driven-design data-transfer-objects

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

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

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

3)其他地方:)

ie:需要在持久化之前加密的密码,或者在存储之前需要转换,重新调整等的图像.

我希望将所有数据格式保存在一个层中,不要喜欢它在整个地方进行编码.

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

eul*_*rfx 6

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