admin 管理员组文章数量: 887030
java中几种常用的对象类型(po,vo,bo,dto)
PO(persistant object)
1.持久对象 在o/r映射的时候出现的概念,如果没有o/r映射,没有这个概念存在了。 2.通常对应数据模型(数据库),本身还有部分业务逻辑的处理。可以看成是与数据库中的表相映射的java对象。 3.最简单的PO就是对应数据库中某个表中的一条记录,多个记录可以用PO的集合。PO中应该不包含任何对数据库的操作。
VO(value object)
1.值对象 通常用于页面与控制层之间的数据传递,和PO一样也是仅仅包含数据而已。 2.但应是抽象出的业务对象,可以和表对应,也可以不,这根据业务的需要.个人觉得同DTO(数据传输对象),在web上传递。 3.精确点讲它是业务对象,是存活在业务层的,是业务逻辑使用的,它存活的目的就是为数据提供一个生存的地方。
BO(business object)
1.业务对象主要作用是把业务逻辑封装为一个对象。这个对象可以包括一个或多个其它的对象。 2.比如一个简历,有教育经历、工作经历、社会关系等等。我们可以把教育经历对应一个PO,工作经历对应一个PO,社会关系对应一个PO。
建立一个对应简历的BO对象处理简历,每个BO包含这些PO。
3.这样处理业务逻辑时,我们就可以针对BO去处理。
DTO(Data Transfer Object)
1.数据传输对象主要用于远程调用等需要大量传输对象的地方。 2.比如我们一张表有100个字段,那么对应的PO就有100个属性。但是我们界面上只要显示10个字段,客户端用WEB service来获取数据,
没有必要把整个PO对象传递到客户端,这时我们就可以用只有这10个属性的DTO来传递结果到客户端,这样也不会暴露服务端表结构.
到达客户端以后,如果用这个对象来对应界面显示,那此时它的身份就转为VO3.DTO是服务器端和客户端进行通 信的一个协议格式,合理的DTO设计将会使得服务器和客户端的通信更加顺畅。
通俗理解:
PO:
persistant object持久对象
最形象的理解就是一个PO就是数据库中的一条记录。 好处是可以把一条记录作为一个对象处理,可以方便的转为其它对象。
DO:
个人简单理解就是类似托管的PO,操作DO不会影响数据库的数据。
DTO:
数据传输对象。例如前台查询不会返回密码只是返回 姓名、性别、生日,于是我们将信息封装到DTO中进行传输。
VO:
value object值对象、view object视图对象。
主要用于业务层之间的数据传递,属性是根据当前业务的不同而不同的。
应用场景:获取的DTO数据中性别信息为0和1,但要求:手机上展示为帅哥和美女,而web端显示为男和女。
FormBean:
它只是HTML表单的封装,是为了在控制层弱化request中存储数据的作用,将request的get方法转变为对象的存取值。
如果让FormBean直接到业务层(它本来应该生活在控制层),View和Model就出现了强耦合,如果想改一下view的表示,整个业务逻辑都得改,恐怖的事情啊。
应用场景:
假如需要查询Person信息,并返回给前端” 姓名、年龄、是否成年 “。如果将FormBean直接作用与业务层,那么相关联的业务中都会设置这个”是否未成年“的字段,显然这不可取的。如果用VO处理业务那么简单多了,相关联的业务就不会受到影响,只需在FromBean里加一个字段就可以了,然后将VO转为FormBean交给前端。
本文标签: java中几种常用的对象类型(po VO BO dto)
版权声明:本文标题:java中几种常用的对象类型(po,vo,bo,dto) 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/jishu/1687743830h136079.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论