我通常使用DTOs
将Presentation
的请求发送到Application
,并使用DTOs
将Application
的回复发送回Presentation
}。
我通常使用DTOs
,Required
等属性来装饰我的请求StringLength
的属性。但没有商业规则。
但是,我已阅读多个来源,我不应该向Required
添加任何类型的验证(例如StringLength
,DTOs
等属性)
我想问一下根据DDD文献推荐的方法是什么。谢谢。
答案 0 :(得分:5)
DDD中负责输入验证的概念是应用程序服务。
因此,您应该删除属性并验证应用服务中的DTO。 使用DTO仅定义结构,并在应用服务中执行输入验证。
如果您在不同的应用服务中获得了大量重复代码(例如,因为它们使用相同的DTO并需要相同的验证),您当然可以将验证提取到可重用的服务中。仍然,应用服务控制输入验证。