PO、DO、TO、DTO,BO的区分

1.PO持久对象

PO就是对应数据库中某个表中的一条记录,一个表就是一个类,每张表的字段就是类中的一个属性。

多个记录可以用PO的集合。PO中应该不包含任何对数据的操作。

2、DO(Domain 0bject)领域对象

就是从现实世界中推象出来的有形或无形的业务实体。

3.TO(Transfer 0bject),数据传输对象传输的对象

不同的应用程序之间传输的对象。微服务里面不同的服务之间的对象最终需要发出去, 被发出去的这些对象 即 TO

4.DTO(Data Transfer Obiect)数据传输对象

比如:现在有一张表,表内有10个字段,对应的PO有10个属性,现在的需求是只需要5个字段,就不需要将10个字段都传递过去,只需要传5个即可。这个被传输的5个字段就是DTO。

这个概念来源于J2EE的设汁模式,原来的目的是为了EJB的分布式应用握供粗粒度的数据实体,以减少分布式调用的次数,从而握分布式调用的性能和降低网络负载,但在这里,泛指用于示层与服务层之间的数据传输对象。

5.VO(value object)值对象

通常用于业务层之间的数据传递,和PO一样也是仅仅包含数据而已。但应是抽象出的业务对象,可以和表对应,也可以不,这根据业务的需要。用new关韃字创建,由GC回收的

= View object:视图对象

用于接受页面传递来的对象,封装对象

将业务处理完成的对象,封装成页面要用的数据, 响应出去的一般都是自定义的信息而不是实体类的完整属性(比如: 用户信息,最终封装之后是去掉了密码)

6.BO(business object)业务对象

从业务模型的度看.见IJML元#领嵫模型的领嵫对象。封装业务逻辑的java对象,通过用DAO方法,结合PO,VO进行业务操作。businessobject:业务对象主要作用是把业务逻辑封装为一个对苤。这个对象可以包括一个或多个其它的对彖。比如一个简历,要有教育经历、工怍经历、社会关系等等。我们可以把教育经历对应一个PO工作经历 (将教育经历对应的PO, 工作经历对应的PO, 社会关系对应的PO 三者合起来组成一个业务对象, 叫简历, 用专门一个类封装这三个属性, 该类的对象就是 BO )

7、POJO简单无规则java对象

8、DAO  (就是常用的操作数据库的对象)

  1. VO,DTO的关系
  • 页面展示的数据是VO,VO需要转换成DTO在传给Service层(需要的5个字段),根据DTO传输的数据,构造BO(业务逻辑对象),BO存放在com.xxx.business包下,在BO这一段处理完具体的业务逻辑,之后更新到数据库,此时又转成PO,用PO进行持久化存。

  1. 为什么需要VO?

需求:

如在一些Entity中,为了让mybatis-plus与知道某个字段不与数据库匹配, 那么就加个 @TableField(exist=false) private Long attrGroupId;

然而这种方式并不规范,比较规范的做法是,新建一个vo文件夹,将每种不同的对象,按照它的功能进行了划分。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值