java bo代表什么_Java学习入门-08 -基本概念--PO、VO、DAO、BO、POJO

几种对象(PO,VO,DAO,BO,POJO)关系示意图

3d2fabbff97d2f9b9badd9461806e668.png

说这几种对象前我们最好先对MVC三层架构有一定了解,M代表数据层、V代表展示层、C代表逻辑层(控制层)。但我们也必须了解并不是所有项目都遵循MVC,必须前后端分离架构,后端负责暴露接口给前端使用,我们一般将后端分为:Repository层、Controller层、Service层,其中Repository层负责数据访问,Controller层负责对外暴露接口,Service层负责业务逻辑处理。这里我们可以根据项目但大小,团队的产能,业务的功能,灵活但将各层再次划分,如我们可以将Entity加入到数据访问层作为与数据库表的映射

... ... ... ... ... ...

一、PO:persistant object 持久对象,可以看成是与数据库中的表相映射的java对象。最简单的PO就是对应数据库中某个表中的一条记录,多个记录可以用PO的集合。PO中应该不包含任何对数据库的操作。PO是对Entity实体类具体操作的对象。

二、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应该都属于它.

具体描述:

1、PO

persistant object持久对象,即持久层

最形象的理解就是一个PO就是数据库中的一条记录。

好处是可以把一条记录作为一个对象处理,可以方便的转为其它对象。

···········

在实际的项目中,与持久层关系紧密的一个对象,那就是 Entity 实体对象,它对应数据库中的表,一个表对应一个 Entity,同样以交易订单表 Order 为例,如果这个表有 20 个字段,那么这个 OrderEntity 对象里面也要含有 20 个对应的属性。

···········

2、BO

business object业务对象,即Service层

主要作用是把业务逻辑封装为一个对象。这个对象可以包括一个或多个其它的对象。

比如一个简历,有教育经历、工作经历、 关系等等。

我们可以把教育经历对应一个PO,工作经历对应一个PO, 关系对应一个PO。

建立一个对应简历的BO对象处理简历,每个BO包含这些PO。

这样处理业务逻辑时,我们就可以针对BO去处理。

3、VO

value object值对象

ViewObject表现层对象,即控制层(Action层)

主要对应界面显示的数据对象。对于一个WEB页面,或者SWT、SWING的一个界面,用一个VO对象对应整个界面的值。

4、DTO

Data Transfer Object数据传输对象

主要用于远程调用等需要大量传输对象的地方。

比如我们一张表有100个字段,那么对应的PO就有100个属性。

但是我们界面上只要显示10个字段,

客户端用WEB service来获取数据,没有必要把整个PO对象传递到客户端,

这时我们就可以用只有这10个属性的DTO来传递结果到客户端,这样也不会暴露服务端表结构.到达客户端以后,如果用这个对象来对应界面显示,那此时它的身份就转为VO

5、POJO

plain ordinary java object 简单java对象

POJO是最常见最多变的对象,是一个中间对象,也是我们最常打交道的对象。

一个POJO持久化以后就是PO

直接用它传递、传递过程中就是DTO

直接用来对应表示层就是VO

6、DAO

data access object数据访问对象,即DAO层

这个大家最熟悉,和上面几个O区别最大,基本没有互相转化的可能性和必要.

主要用来封装对数据库的访问。通过它可以把POJO持久化为PO,用PO组装出来VO、DTO。DAO是具体在Repository层操作的对象。

总结:一个对象究竟是什么O要看具体环境,在不同的层、不同的应用场合,对象的身份也不一样,而且对象身份的转化也是很自然的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值