Java中PO,DO,DTO,VO的概念

PO(persistant object) 持久对象

  • 在 o/r 映射的时候出现的概念,如果没有 o/r 映射,没有这个概念存在了。通常对应数据模型 ( 数据库 ), 本身还有部分业务逻辑的处理。可以看成是与数据库中的表相映射的 java 对象。最简单的 PO 就是对应数据库中某个表中的一条记录,多个记录可以用 PO 的集合。 PO 中应该不包含任何对数据库的操作。
  • 一个PO有三种状态:
    1.未被持久化的VO,此时就是一个内存对象VO,由JVM管理生命周期。
    2.已被持久化的PO,并且在Session生命周期内,此时映射数据库连接,由数据库管理生命周期。
    3.曾被持久化过,但现在和Session已经托管(detached)了,以VO的身份在运行。它还可以进入另一个Session,继续PO状态管理。

DO(Domain Object)领域对象

  • 就是从现实世界中抽象出来的有形或无形的业务实体。一般和数据中的表结构对应。

DTO(Data Transfer Object) 数据传输对象

  • 这个概念来源于J2EE的设计模式,原来的目的是为了EJB的分布式应用提供粗粒度的数据实体,以减少分布式调用的次数,从而提高分布式调用的性能和降低网络负载,但在这里,我泛指用于展示层与服务层之间的数据传输对象。

VO(view object) 值对象

  • 视图对象,用于展示层,它的作用是把某个指定页面(或组件)的所有数据封装起来。

举个DTO,VO的例子

  • 登陆京东商城,登陆的时候需要给后端传送账号密码,这里给他设为一个对象LoginUser;登陆成功后后端向前端返回一组数据用于展示京东商品页面,这个对象叫ShowMessage;
  • 在这个例子里,LoginUser便是DTO;ShowMessage既是VO
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容