3

我是其中一个项目的一部分,我们在该项目中生产 java web 服务并发布到服务器。其他一些 java 应用程序正在通过 extjs 使用 Web 服务。

在那个生产者应用程序中,遵循领域驱动设计。我们使用了两种类型的 pojo,域对象和 DTO 对象。这两个类都具有相同的属性变量。而 DTO 类正在实现 Serializable 类。

首先,我们从 db 调用创建 domians 对象,然后将域对象转换为 dtos 并发布在 web 服务中。

现在我想知道拥有这两种类型的对象是一种好习惯吗?为什么 dto 实现了可串行化(一个原因可能是在通过网络调用 web 服务时维护对象的状态——我在网络中找到了这个原因,但我不清楚)?

欢迎任何指向此或专家解释的链接。

提前致谢。

4

1 回答 1

3

使对象Serializable能够被转移。它允许转换Object为字节,然后字节转换为Object.

请注意,通常 DTO 比通常具有许多仅用于业务处理的属性的域对象更轻(因为前往客户端)。

所以基本上在一个多层项目中你可以拥有例如:

  • 映射到数据库的域对象
  • 将处理业务规则的业务层
  • 从域对象到 DTO 的转换
  • DTO 被转移到客户端

一些阅读:

http://www.oracle.com/technetwork/java/transferobject-139757.html

https://softwareengineering.stackexchange.com/questions/171457/what-is-the-point-of-using-dto-data-transfer-objects

DTO、VO、POJO、JavaBeans 的区别?

于 2015-06-03T08:16:02.540 回答