简单理解VO、DTO、PO、DO的概念、区别
简单理解VO、DTO、PO、DO的概念、区别
概念
VO(View Object) 视图对象,用于表现层,对指定页面或者组件需要的数据进行封装.
DTO(Date Transfer Object) 数据传输对象,用于表现层与服务层进行数据传递,简单来说就是接受服务层需要数据.
DO(Domain Object) 领域对象,从现实中抽取出的业务实体.
PO(Persistent Object) 持久化对象,与数据库字段一一对应的映射关系,数据库字段对应PO的属性
关系如下图所示
- 用户发送请求(或者表单)匹配数据VO中
- 服务层将VO转换为方法所需要的DTO对象
- 服务层根据DTO创建DO对象
- 服务层将DO转化为持久层需要的PO对象
简单描述VO/DTO/DO/PO四者之间的区别
- 从设计层面上说,VO代表显示层展示的数据,DTO代表服务层需要接受和返回的数据,本就各司其职,但两者数据有大量甚至完全一致的数据,因此我们在实际开发中经常会发现共同使用一个数据对象,虽然不太符合设计规范.
- 从概念上讲,DTO是服务层与显示层的数据传输对象,DO是对具体的业务主体的抽象,两者最常见的使用区别场景,首先DO基本包含所有数据,有时候用户请求服务时,需要返回数据,按道理DO已经足够满足数据的返回要求,但是有一些数据我们不想让用户看见,这个时候就需要DTO对象.
- PO和DO存在差异的情况少之又少,PO是持久层的数据,DO是对业务实体的抽象,一个PO可以对应多个DO,反之亦然,根据具体使用常见而定.
简单理解VO、DTO、PO、DO的概念、区别相关推荐
- PO,BO,VO,DTO和POJO的概念区分
PO,BO,VO,DTO和POJO的概念区分 文章目录 PO,BO,VO,DTO和POJO的概念区分 POJO(plain ordinary java object) VO(View Object) ...
- 教你简单理解分布式与传统单体架构的区别
教你简单理解分布式与传统单体架构的区别 原文:教你简单理解分布式与传统单体架构的区别 分布式是一种系统架构方式,而在分布式系统中一般基于中间件进行开发,消息中间件是分布式系统中比较核心的中间件之一.这 ...
- vo,dto,po的区别
pojo:对应数据表的实体类 pojo有人也写为po,entity,domain:代表系统中的一个具体的实体,如用户.订单.产品等.通常是将其映射到数据库表的对应实体,包含该实体的属性和相关方法. 个 ...
- PO BO VO DTO POJO DAO DO概念解读
假如有一张user表,里面有几个字段: user_id user_name pass_word create_time dept_id 假设就这么多吧,一张很基础的表,那么对应Java的写法就是一个类 ...
- java do对象_java一些对象概念扫盲帖(DO VO DTO PO)
资料来源:http://virusswb.blog.51cto.com/115214/458636 BO:Business Object,业务对象.主要是承载业务数据的实体.处理业务逻辑的时候使用,数 ...
- 简单理解sticky定位与fixed定位的区别
fixed:固定定位,相对于可视窗口定位,一但使用top,left绑定后,无论怎么滚动可视窗口区域(也就是滑动滚动条),它的位置都不会发生变化 sticky:粘性定位,相当于是相对定位和固定定位的结合 ...
- 简单理解 word-wrap、word-break 和 white-space 的区别
不设置word-warp和word-break的时候,一行单词,超过了容器的宽度是,会将最后一个单词下移一行进行显示,如果下移的那个单词长度还是超过了容器宽度,则会溢出 word-wrap 设置wor ...
- 关于VO,BO,PO,DO,DTO的简单理解
一.关于VO,BO,PO,DTO的简单理解 VO(Value Object)值对象 值对象:每一个字段与视图层所需要的字段对应 ,可以理解为vo里面的字段,和前端请求参数里面的字段相对应 DTO(Da ...
- Android:安卓学习笔记之共享元素的简单理解和使用
Android 共享元素的简单理解和使用 1 .基本概念 2.基本使用 1.Activity to Activity跳转实现 1.1.使用步骤 1.2.案例说明 2.Fragment to Fragm ...
最新文章
- Target runtime Apache Tomcat v7.0 is not defined.
- oracle远程连接配置
- 202701算法_冒泡排序
- C语言调用WIN32 API学习之6鼠标与键盘响应
- HDU4669_Mutiples on a circle
- SAP CRM One Order框架里旧式的索引表设计原理
- Java 8新特性——default方法(defender方法)介绍
- 【OpenCV】OpenCV函数精讲之 -- 通道合并:merge()函数
- mysql应用层透明扩展_MySQL高扩展和高可用
- Web前端初学者,需用了解的7大HTML知识点
- 第1本书:CCIE Practical Studies, Volume I-第13天
- 中国现代远程与继续教育网 统考 大学英语(B)考试大纲
- ECharts 实现地图功能
- C语言从入门到不放弃---编程环境的搭建到上手写代码
- 摇身一变,ADSL猫进化为无线路由器
- 【无标题】Ds1302驱动代码编写并在Lcd1602液晶显示
- 千纸鹤(小纸片)全套源码
- win10 suse linux,Windows 10现已支持安装SUSE Linux子系统 附安装教程|蓝点网
- 8年iOS架构师告诉你,为什么iOS现在不行了!
- python scripts文件夹里面没有pip.exe怎么办?