Domain driven design POCO vs DTO:部分水合一个域对象可以吗?
通常需要在UI上以各种方式显示域对象;列表、搜索结果、查看和编辑页面以及页眉、页脚和弹出窗口。通常,域对象有几个不同的“视图”,每个视图显示不同的字段 大多数建议似乎是在需要子集或超集时使用DTO来获取数据。维护DTO有很多开销。简单地填充每个场景所需的域对象的属性是一种不好的方法。例如,您可以使用配置文件说明应包括哪些属性,例如: GetDomainObjects(int-listID,Profile.ListProfile);Domain driven design POCO vs DTO:部分水合一个域对象可以吗?,domain-driven-design,poco,dto,Domain Driven Design,Poco,Dto,通常需要在UI上以各种方式显示域对象;列表、搜索结果、查看和编辑页面以及页眉、页脚和弹出窗口。通常,域对象有几个不同的“视图”,每个视图显示不同的字段 大多数建议似乎是在需要子集或超集时使用DTO来获取数据。维护DTO有很多开销。简单地填充每个场景所需的域对象的属性是一种不好的方法。例如,您可以使用配置文件说明应包括哪些属性,例如: GetDomainObjects(int-listID,Profile.ListProfile); GetDomainObjects(字符串searchParam,
GetDomainObjects(字符串searchParam,Profile.SearchProfile) 对我来说,这归根结底是你想要的开销,要么你将有一组不同的类来表示你的DTO,要么你将有一组方法,每个方法返回相同的域对象,但不同的字段被“水合” 为了帮助做出决定,我会问几个问题:
- 给整个物体补水的开销是多少?增加的复杂性(DTO或部分水合物体)真的值得吗
- 其他人会使用你的代码吗?您不必将人们与不规则的对象混淆,当人们来维护您的代码时,DTO可能会更清晰