我应该在DDD架构中向DTO添加验证吗?

时间:2015-12-23 01:09:05

标签: domain-driven-design

我通常使用DTOsPresentation的请求发送到Application,并使用DTOsApplication的回复发送回Presentation }。

我通常使用DTOsRequired等属性来装饰我的请求StringLength的属性。但没有商业规则。

但是,我已阅读多个来源,我不应该向Required添加任何类型的验证(例如StringLengthDTOs等属性)

我想问一下根据DDD文献推荐的方法是什么。谢谢。

1 个答案:

答案 0 :(得分:5)

DDD中负责输入验证的概念是应用程序服务。

因此,您应该删除属性并验证应用服务中的DTO。 使用DTO仅定义结构,并在应用服务中执行输入验证。

如果您在不同的应用服务中获得了大量重复代码(例如,因为它们使用相同的DTO并需要相同的验证),您当然可以将验证提取到可重用的服务中。仍然,应用服务控制输入验证。