gpt4 book ai didi

java - 从域对象构建 DTO 的设计

转载 作者:行者123 更新时间:2023-11-29 07:50:19 25 4
gpt4 key购买 nike

我有一个域对象图,我需要构建一个 DTO 以将其发送到 View 。如何正确设计?我看到 2 个选项,我可以在哪里放置 DTO 构建代码:

1) 进入 DTO 构造函数。但是随后域对象必须通过 getter 将所有字段呈现给 DTO,因此它不是 DDD。

public DTO(DomainObject domain) {
/// access internal fields of different domain object.
}

2) 进入域对象。访问字段不会有问题,但是当添加新 View 时,域对象会增长得非常快。

public DTO1 createDTO1() {
...
}

public DTO2 createDTO1() {
...
}

// and so on...

我应该如何正确构建 DTO?

最佳答案

我认为这里有一个更大的问题。您不应该查询您的域。您的域应该专注于行为,因此,很可能不会以适合 View 的格式包含数据,尤其是出于显示目的。

如果您将整个Customer 对象发送回Edit,那么您正在执行非常注重数据的基于实体的交互。您可能想尝试更多地关注基于任务的交互。

因此,为了向您的 View 获取数据,我建议使用一个简单的查询层。您经常需要一些非规范化数据来提高查询性能,而这些数据无论如何都不会出现在您的域中。如果您确实需要 DTO,则直接从您的数据源映射它们。如果您能摆脱更通用的数据容器结构,那将是一等奖。

关于java - 从域对象构建 DTO 的设计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21698821/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com