基于EJB的J2EE多层架构应用中,经常涉及的一个问题就是如何在各层之间传递批量数据,比如客户端对服务器端数据的批量读写操作等。比如需要得到实体EJB的属性,直接的方法是多次调用不通的属性,如下图10:
图10:低效的数据传递方式
但这种方法容易导致许多问题,比如性能以及代码的复杂度等,更有效的办法是在一个调用中得到所有需要的属性。所以可以引入Data Transfer Object来封装所需要的属性,并在客户与服务器端通过传递该对象一次实现对数据的操作。如下图11:
图11:通过DTO传递数据
DTO为普通的Java Class,通常是服务器端数据的快照。由于网络传输的需要,DTO应该实现java.io.Serializable接口。
DTO的设计有两种模型:Domain DTO以及Custom DTO。
Domain DTO仅仅实现对服务器数据的拷贝,通常与实体EJB为一对一的关系(也存在为多个相关联的实体EJB对应一个Domain DTO)。Domain DTO通常除用于读取更改实体EJB属性外也可用于创建实体EJB时候。实体EJB与Domain DTO对应关系如下图12:
延伸阅读
文章来源于领测软件测试网 https://www.ltesting.net/