- 关于关键词难度的分析——如何选择自己的网站关键词
- 一段自适应高度的圆角css矩形
- indexOf,lastIndexOf和substring 用法详解
- 其他网站定制
- 微信小程序中Var、Let、Const用法分析
- VSCode环境自定义配色方案
- VS的“行尾不一致,要将行尾标准化吗”问题
- thinkphp中foreach
- 什么是Stop Words?
- String.split()采用特殊符号进行分割的解决方法
邮箱:
手机:15383239821
清楚VO,BO,PO,DO,DTO的区别
面对这个图,让我们先从承上启下的DTO开始入手

DTO(Data Transfer Object)数据传输对象
这个传输通常指的前后端之间的传输
DTO是一个比较特殊的对象,他有两种存在形式:
在后端,他的存在形式是java对象,也就是在controller里面定义的那个东东,通常在后端不需要关心怎么从json转成java对象的,这个都是由一些成熟的框架帮你完成啦,比如spring框架
在前端,他的存在形式通常是js里面的对象(也可以简单理解成json),也就是通过ajax请求的那个数据体
这也是为什么把他画成横跨两层的原因
这里可能会遇到个问题,现在微服务盛行,服务和服务之间调用的传输对象能叫DTO吗?
我的理解是看情况
DTO本身的一个隐含的意义是要能够完整的表达一个业务模块的输出
如果服务和服务之间相对独立,那就可以叫DTO
如果服务和服务之间不独立,每个都不是一个完整的业务模块,拆开可能仅仅是因为计算复杂度或者性能的问题,那这就不能够叫做DTO,只能是BO
VO(Value Object)值对象
VO就是展示用的数据,不管展示方式是网页,还是客户端,还是APP,只要是这个东西是让人看到的,这就叫VO
VO主要的存在形式就是js里面的对象(也可以简单理解成json)
VO和DTO的区别
主要有两个区别
一个是字段不一样,VO根据需要会删减一些字段
另一个是值不一样,VO会根据需要对DTO中的值进行展示业务的解释
举个简单的例子
DTO可能是这样的
{
"gender":"男",
"age":35
}
对于业务一来说只需要性别,而且因为是一个古风聊天室,也不能直接展示男,因此经过业务解释业务一的VO是
{
"gender":"公子"
}
对于业务二来说只需要年龄,而且不需要精确的年龄,因此经过业务解释业务二的VO是
{
"age":"30~39"
}
PO(Persistant Object)持久对象
PO比较好理解
简单说PO就是数据库中的记录,一个PO的数据结构对应着库中表的结构,表中的一条记录就是一个PO对象
通常PO里面除了get,set之外没有别的方法
对于PO来说,数量是相对固定的,一定不会超过数据库表的数量
等同于Entity,这俩概念是一致的
- 上一篇:什么是DTO、VO、BO、PO、DO
- 下一篇:C#面:详细阐述什么是 DTO
-
2012-06-30SEO基础细节:nofollow的介绍与应用
-
2010-08-10Session是什么呢
-
2013-04-23ASP.NET - FileUpload Web 服务器控件概述(上)
-
2013-06-10ASP.NET对文件的操作,创建文件,判断文件是否存在,判断文件是否存在删除文件夹
-
2023-09-22php中双冒号什么意思?
-
2010-12-09如何分析网站日志
