-
12-12-2019 - |
题
我在书籍和文章中读了很多关于DTO的DTO,但我不确定我是否正确。
我们在我们的项目中使用DTO,使它们几乎只是域对象的属性。因此,我们需要拥有一个复杂的DTO结构。有些课程彼此延伸,构图,聚集体等。
问题更普遍。
是对另一个dto继承的权利,或者在另一个dTo中对DTO引用?
解决方案
从另一个继承DTO是正确的
如果它们共享常见属性,那么为什么不呢?
将DTO中的参考与另一个DTO 中的参考
肯定没有错,考虑以下内容:
.public class UserDto { public string Id { get; set; } public string Username { get; set; } public string Email { get; set; } public AddressDto Address { get; set; } } public class AddressDto { public string AddressLine1 { get; set; } public string AddressLine2 { get; set; } public string City { get; set; } }
记住dto只是 dumb 对象i.e.它们没有行为(除了获取/设置自己的数据之外)。同样的规则适用于DTO,因为他们将从架构的角度来看标准类/对象,因此如果您可以何时可以遵循相同的原则,因此没有理由。
其他提示
DTO用于层间通信。
我更喜欢简单的DTO,因为它们主要用于讲述持久层,一般来说数据访问对象,存储什么。如果是这样的话,不要去复杂的DTO。
如果DTO是复杂的(即DTO与另一个DTO为属性的DTO),DAO将存储数据所需的复杂性更大。这冲突了DAO的目标是从存储技术中解耦的方式。
所以,如果DTO需要解决另一个DTO,只需使用字符串ID作为属性,并为每个DTE保留一个简单的DAO。处理互连的DTO的逻辑应转到使用DAOS的服务应用程序或业务对象。这样,您可以增加代码的重用。
不隶属于 StackOverflow