java的几种对象(PO,VO,DAO,BO,POJO)解释

本文解析了Java中PO、VO、DAO、BO、POJO等对象的角色及用途,并以Struts框架为例介绍了业务对象、数据传递对象等的区别。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 转帖来自:http://blog.chinaunix.net/u/4764/showart_144878.html

java的几种对象(PO,VO,DAO,BO,POJO)解释 
   一、PO:persistant object 持久对象,可以看成是与数据库中的表相映射的java对象。最简单的PO就是对应数据库中某个表中的一条记录,多个记录可以用PO的集合。PO中应该不包含任何对数据库的操作。

   二、VO:value object值对象。通常用于业务层之间的数据传递,和PO一样也是仅仅包含数据而已。但应是抽象出的业务对象,可以和表对应,也可以不,这根据业务的需要.个人觉得同DTO(数据传输对象),在web上传递。

   三、DAO:data access object 数据访问对象,此对象用于访问数据库。通常和PO结合使用,DAO中包含了各种数据库的操作方法。通过它的方法,结合PO对数据库进行相关的操作。

   四、BO:business object 业务对象,封装业务逻辑的java对象,通过调用DAO方法,结合PO,VO进行业务操作。

   五、POJO:plain ordinary java object 简单无规则java对象,我个人觉得它和其他不是一个层面上的东西,VO和PO应该都属于它。 
 

struts中的几种类型的对象的区分- -

                                      

在struts中(或者其他的基于MVC的WEB应用中)的几种常用对象如下:
  1. 业务对象(BO)
     1.1 实体业务对象(Entity)
     1.2 过程业务对象(Process)
     1.3 事件业务对象(Event)
  2. 数据传递对象/值对象(DTO/VO)
  3. FormBean
  4. 数据访问对象(DAO)
  5. POJO(或者可以翻译为纯Java对象?:))
  6. 持久化对象(PO)
这些对象构成了整个WEB应用程序的立体结构,结构图大概如下:
 
立体结构图
  1. BO就是业务逻辑中所涉及的所有的对象,使用这些对象来进行逻辑操作。
      EJB中的EB就是一种实体业务对象
      EJB中的SB就是一种过程业务对象
      BO的可视范围在控制层和持久层之间。
  2. DTO主要是用来在不同层之间传递数据,是细粒度数据的粗粒度视图。  关于他和其他对象的差别见上图。
  3. FormBean是Html Form映射成的一个对象,主要是用来把Html Form中零散的数据封装起来,以对象的形式来提供OO方式的操作。
  4. DAO使底层数据访问逻辑与业务逻辑分离开,也就是说因为DAO的存在,才隔离开了数据的访问逻辑和业务逻辑,DAO从具体数据源中抽取数据,组成POJO,供BO使用,同时对BO传递过来的POJO,持久化到数据源中。
  5. POJO是和PO相区分的一种对象,POJO指的是纯Java的对象,他活动于业务层,由JVM来掌管其生死。
  6. PO是对应于数据源而存在的对象,它往上对应于POJO,往下对应于物理数据源。一般的,ORM提供这种PO,例如hibernate,通过它,使程序员感觉不到PO的存在,数据源自然的映射成了Java中的对象(POJO)。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值