【问题标题】:Can I use DTO composed of other classes or just primitives?我可以使用由其他类或原语组成的 DTO 吗?
【发布时间】:2011-06-03 12:20:03
【问题描述】:

如果我有两个班级:

public class Person {
   public String name;
   public int age;
}

public class Address {
   public String address;
   public int number;
}

我应该像下面这样构造一个 DTO:

public class MyDTO {
    public Person person;
    public Address address;
}

或者这个:

public class MyDTO {
    public String name;
    public String address;
}

【问题讨论】:

  • 我对你的问题还是有点困惑。你的目标到底是什么?是为了避免必须指定字段类型吗?是创建一个通用的 DTO 类吗?您是在问是否可以在 DTO 中包含非原始、非字符串字段?
  • 您是否在问是否可以在 DTO 中包含非原始、非字符串字段?是的。因为我看到的所有例子都是使用原始字段。并且将 dto 与 A 类和 B 类的实例一起使用也更通用。谢谢
  • 请注意String 不是原语...

标签: java dto


【解决方案1】:

你可以在 DTO 中拥有任何你想要的东西,但基本理念是尽可能传输最少的数据。

但请记住,DTO 的目的是在 JVM 边界之间传输数据,例如在使用 EJB 时。如果是这种情况,您必须记住确保 DTO 中引用的所有类都是可序列化的。

在上面的示例中,最简单的 DTO 是

public class MyDTO {
    public String name;
    public String address;
}

而且很容易食用。

但是,如果您的消费者要使用 Person 和 Address 类,则将它们放在 DTO 中可能更容易,以便更容易使用。

没有“一刀切”的答案。这取决于您的环境以及您的工作方式。

【讨论】:

    猜你喜欢
    • 2020-02-06
    • 2017-07-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多