数据传输对象(DTO)设计模式在java中的例子

561 阅读3分钟

这篇文章涵盖了一个数据传输对象(DTO)的例子和命名规则 数据传输对象(DTO)设计模式是用于从一个系统向另一个系统传输数据的设计模式之一。

这些也被称为转移对象价值对象

为什么需要数据传输对象模式?

在大多数的java项目中,我们必须从数据库中获取数据。在java类的一个方法中,你从你的应用程序中查询数据库(例如,从employee中选择employee id, employee name)。在这种情况下,这些代码可能是一个Web应用程序或一个独立的应用程序(applet或Eclipse RCP客户端)。假设该程序在主机1上运行,MySQL数据库存储在主机2上。

当你从程序中获得雇员的详细资料时,程序第一次查询雇员的ID,然后第二次查询雇员的名字,以此类推,查询所有字段。

相反,解决方案是,我们可以建立一个java POJO类来存储所有的字段,减少网络延迟,提高工作效率。

DTO或VO类的优点

  • 为了减少网络流量,我们将创建一个java对象,该对象有容纳每一行数据的成员变量,并返回每个对象或对象的列表。
  • 数据传输变得容易了,网络流量也减少了。
  • 用这种方法减少代码的重复

数据传输对象设计模式实例

这个模式是一个带有setter和getter的plin java类

  • 声明私有成员变量
  • 为成员变量提供setter和getter
public class Employee {

 private long mEmployeeId;
 private String mEmployeeName;

 public void setEmployeeId(long pEmployeeId) {
  this.mEmployeeId = pEmployeeId;
 }

 public long getEmployeeId() {
  return this.mEmployeeId;
 }

 public void setEmployeeName(String pEmployeeName) {
  this.mEmployeeName = pEmployeeName;
 }

 public String getEmployeeName() {
  return this.mEmployeeName;

 }
}

如何使java对象可序列化在java中,当java对象在不同的JVM或机器之间传输时,该对象必须是可序列化的。

对于任何java对象来说,要使其可序列化,我们必须实现java.io.Serializable接口,该接口没有任何方法需要实现,这些也被称为标记接口。

那么,我们如何在不实现方法的情况下实现可序列化呢?

JVM认为,只要对象是用可序列化接口实现的,它就有资格进入序列化过程。JVM检查每个对象是否使用方法(object instanceOf Serializable)来进行处理。

下面是一个例子

public class Employee implements Serializable{
     private long mEmployeeId;
 private String mEmployeeName;

 public void setEmployeeId(long pEmployeeId) {
  this.mEmployeeId = pEmployeeId;
 }

 public long getEmployeeId() {
  return this.mEmployeeId;
 }

 public void setEmployeeName(String pEmployeeName) {
  this.mEmployeeName = pEmployeeName;
 }

 public String getEmployeeName() {
  return this.mEmployeeName;
 }
}

数据传输对象的命名规则

  • DTO包含POJO和Setter和getters

  • 类名是名词或名词相

  • 在类名后加 "DTO "或 "TO "或 "VO",但这些不是必须的。 例如,如果对象是一个用户,类名应该是UserDTO。

  • 所有的DTO类都放在dto文件夹中,例如,完整的包名是org.company.security.dto。

结论

总结一下,DTO或VO或TO设计模式的使用情况