Java中POJO、VO、DTO、PO、Entity的区别
在看一些实际的项目的源码的时候,我们会发现POJO、VO、DTO、PO、Entity、domain的区别,那它们分别是什么呢,与我们学习Java时遇到的POJO有什么不同呢。下面就来简单的谈谈一下我对它们的一个理解。 1、POJO(Plain Ordinary Java Object) :即无规则简单Java对象,就是一个我们最常见的普通Java对象,这个概念是被大家叫出来的,它具有一些属性,然后提供对应的getter和setter。即不与数据库打交道的简单对象。 一个中间对象,可以转化为VO、DTO、PO
2、VO(View Object) :视图对象【表示层对象】,用于展示层,它的作用是把某个指定页面(或组件)的所有数据封装起来。即和html、jsp等页面属性对应的java对象。 对应页面显示的数据对象,可以和表对应,也可以不对应。一般在Controller层使用
3、DTO(Data Transfer Object) :数据传输对象,这个概念来源于J2EE的设计模式,原来的目的是为了EJB的分布式应用提供粗粒度的数据实体,以减少分布式调用的次数,从而提高分布式调用的性能和降低网络负载,但在这里,我泛指用于展示层与服务层之间的数据传输对象。即提取数据库中所需要的的属性减少不需要的属性来提高传输速度、流量。 传递数据。如PO有100个属性,页面VO只显示10个,那么DTO就也传输10个。一般在Service层使用
4.、Entity :entity里的每一个字段,与数据库相对应。 实体,和PO的功能类似,和数据表一一对应,一个实体一张表
5、PO(Persistent Object持久化对象) 持久化对象,它跟数据表形成一一对应的映射关系。 一般在Dao层使用
6、domain :即领域模型 银行 保险 电商 物流 医疗 DDD 领域驱动设计 需要和相关领域的专家讨论得出。
|