VO、DTO、BO、PO、DO概念梳理

【概念】
POJO( Plain Ordinary Java Object):POJO专指只有setter、getter、toString的简单类,包括VO/DTO/BO/DO等。

VO( View Object):显示层对象、也叫值对象,通常是Web向模板渲染引擎层传输的对象,VO就是展示用的数据。

DTO( Data Transfer Object):数据传输对象,Service或Manager向外传输的对象,这个传输通常指前后端之间的传输。

PO:(Persistent Object)持久化对象,对象属性与数据库字段形成映射关系,简单来说PO就是数据库中的记录,
一个PO的数据结构对应着库中表的结构,表中的一条记录就是一个PO对象,通常PO除了get,set方法之外没有别的方法,PO只是用来增删改使用。

BO( Business Object):业务对象,由Service层输出的封装业务逻辑的对象。BO就是PO的组合,简单的例子比如说PO是一条交易记录,BO是一个人全部的交易记录集合对象。

DO:(版本2:Data Object 阿里巴巴的开发手册):与数据库表结构一一对应,通过DAO层向上传输数据源对象。 == PO  == Entity
DO:(版本1:Domain Object 领域驱动设计)领域对象,就是从现实世界中抽象出来的有形或无形的业务实体,可以当成BO;(Data Object)数据层对象,对象属性与数据库字段形成映射关系,可以当成PO


【VO和DTO的区别】
一个是字段不一样,VO根据需要会删减一些字段;
另一个是值不一样,VO会根据需要对DTO中的值进行展示业务的解释;

【BO和DTO的区别】
这两个的区别主要是就是字段的删减
BO对内,为了进行业务计算需要辅助数据,或者是一个业务有多个对外的接口,BO可能会含有很多接口对外所不需要的数据,因此DTO需要在BO的基础上,只要自己需要的数据,然后对外提供
在这个关系上,通常不会有数据内容的变化,内容变化要么在BO内部业务计算的时候完成,要么在解释VO的时候完成


【实际应用】
1、VO对于展示业务不复杂的可以不用,直接用DTO。
2、系统需要操作数据库时,持久化对象不管叫PO还是叫Entity,必须得有。
3、简单业务系统DTO是可以和BO合并成一个,当业务扩展的时候注意拆分就行。
4、概念是给人用的,多人协作的时候团队成员的概念要一致。

参考:

VO、BO、PO、DO、DTO的区别_青年人责任的博客-CSDN博客_bo do

https://www.jianshu.com/p/072304c3dfb7

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值