我在书籍和文章中读了很多关于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的服务应用程序或业务对象。这样,您可以增加代码的重用。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top