`

PO BO VO DTO POJO DAO区别

    博客分类:
  • Java
 
阅读更多
 
PO persitant object 持久对象
PO persitant object 持久对象
BO business object 业务对象
VO value object 值对象
POJO plain ordinary java object 简单java对象
DTO data transfer object 数据传输对象
DAO data access object 数据访问对象

 

 

1.PO:persistant object持久对象

顾名思义po是可以持久化的对象,那边po必须有唯一标示,以便能持久化。一般PO就是数据库中的一条记录。

 

2.BO:business object 业务对象

从业务模型的角度看,见UML元件领域模型中的领域对象。封装业务逻辑的java对象,通过调用DAO方法,结合PO,VO进行业务操作。主要作用是把业务逻辑封装为一个对象。这个对象可以包括一个或多个其它的对象。比如一个简历,有教育经历、工作经历、社会关系等等。我们可以把教育经历对应一个PO,工作经历对应一个PO,社会关系对应一个PO。建立一个对应简历的BO对象处理简历,每个BO包含这些PO。这样处理业务逻辑时,我们就可以针对BO去处理。

 

3.VO :value object 值对象

值对象是一个聚合的共享对象。它通常不需要唯一的主键。

 

4.POJO :plain ordinary java object 简单java对象

POJO也是一个中间对象,也可以说是一个统称。

一个POJO持久化以后就是PO;直接用它传递、传递过程中就是DTO;在中间传递过程中又变成了VO

 

5.DTO :Data Transfer Object数据传输对象

主要用于远程调用等需要大量传输对象的地方。比如我们一张表有100个字段,那么对应的PO就有100个属性。 但是我们界面上只要显示10个字段,客户端用WEB service来获取数据,没有必要把整个PO对象传递到客户端,这时我们就可以用只有这10个属性的DTO来传递结果到客户端,这样也不会暴露服务端表结构.到达客户端以后,如果用这个对象来对应界面显示,那此时它的身份就转为VO

 

6.DAO:data access objec t数据访问对象

dao是也可以说是一个模式,也是平时听说和用的最多的,但是同时也是也上面几个概念也是区别最大的。主要用来封装对数据库的访问。提供一些原子性的数据操作。

 

总结:J2EE中各种专业名词太多,并且有很多都很接近,很容易弄错,在我们的实际代码中需要根据不同的层次和不同的场景进行使用。否则很容易就弄错,也许不影响代码,但是概念错误。对于可读性和维护性都是很不利。有的时候使用不当,会产生性能问题和隐藏很深的bug出现。



 

  • 大小: 52.3 KB
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics