【实体类对象】简单解析

实体类对象的简单解析


最近开始慢慢开学,有许多的事情要弄;博客都好久没写写了;趁今天还有点时间(鬼知道明天又要做什么事情),简单回顾一下几个实体类,理清一下。这只是本人的见解,有些不到位的地方还希望多多指正。

1.VO

全称:View Object 视图对象
用途
1.将form表单数据转换成实体类(接收浏览器的数据)
2.将发送给前端的数据封装好(把数据给浏览器让浏览器显示)
简单来说:VO就是跟前端数据打交道的,不是你传给我就是我传给你。

2.PO

全称:Persistent Object 持久化对象
用途
1.将数据封装好存入数据库
2.将数据库查询出来的数据映射到实体类
简单来说:PO就是跟数据库打交道的,看其名称,持久化对象(不考虑redis的AOF和RDB),就是将数据持久化到磁盘中。

3.DO

全称:Data Object 数据对象
用途
我认为是:从一切工具类(es,redis等)查询到的数据封装成对象

4.DTO

全称:Data Transfer Object 数据传输对象
用途:从一方到另一方的数据传输(例如从提供方到调用方的传输);例如整合了PO和DO然后传输到service层在转成PO进行数据持久化。

简单图例

在这里插入图片描述

案例:

之前写个一个简单的订餐系统Demo。我们都知道既然设计到订单系统,最简单的那么就是至少**两张表(订单表和订单详情表)**了
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200509100721112.pn
在这里插入图片描述

那么,当我们需要查询这个用户的订单的时候;前端传给一个用户唯一标识符,我们根据标识符先查找到这个用户的订单ID(order_id),然后根据用户的ID在查找到用户所购买的商品(order_detail中对应的order_Id)那么,用户订单和商品详情都是简单的PO;我们需要在service层查到后,将其封装成DTO,也就是用户订单PO在加上一个List列表用于存放用户所购买的商品,这就组成了DTO,将DTO传送给controller层,再在controller层进行相应数据转换到前端,转化后的数据就是VO。

当然,如果有一些其他的因素要存到redis中,那么也是接收的前端的数据VO然后从redis中查询出DO,进行组装;此时DTO=VO+DO,传入到service层,service层在对应解析成不同的PO,分别插入到不同的表中去。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值