DO、PO、BO、DTO、VO等概念
PO
全称为:Persistant Object,持久化对象,与数据库结构映射的实体,数据库中的一条数据即为一个 PO 对象。
BO
全称为:Business Object,业务对象,主要作用是把业务逻辑封装成一个对象,这个对象可以包括一个或多个其它对象。
比如一个简历 BO 中有教育经历,工作经历,社会关系等多个 PO 对象。
DTO
全称为:Data Transfer Object,数据传输对象,比如一张表有 100 个字段,那么对应的 PO 就有100 个属性(大多数情况下,DTO内部的数据结构来自多个表)但 view 层只需要显示 10 个字段,没有必要把整个 PO 对象传递到 client,这时我们就可以用只有这 10 个属性的 DTO 来传输给 client,这样也不会暴露 server 端表结构,到达客户端后,如果这个对象来对应页面显示,它的身份就转为 VO。
使用场景:
- UserDTO 不应该返回用户密码。
- UserDTO 包含归属部门名称,而 UserPO 只有 deptId,没有部门名称。
- 后台表有 100 个字段,但前端展示只需要 10 个字段,减少数据传输。
- 简历 ResumeDTO 包含教育经历、工作经历、社会关系等多个表的数据。
VO
全称为:View Object,主要对应页面展示的数据对象,一般继承自 PO,可以添加 PO 中没有的字段,用来逻辑处理以及其它消息存储。
DO
全称为:Domain Object,领域对象,从现实世界中抽象出的业务实体,它不是简单的 POJO,它具有业务领域逻辑。
DAO
全称为:Data Access Object,数据访问对象,一般所说的 DAO 层,用于连接数据库与外层之间的桥梁,并持久化数据层对象。
模型
- 用户发出请求,表单的数据层被匹配为 VO。
- 展示层把 VO 转换为服务层对应方法锁要求的 DTO,传输给服务层。
- 服务层首先根据 DTO 的数据构造一个 DO,调用 DO 的业务方法完成具体业务。
- 服务层把 DO 转换为持久层对应的 PO,调用持久层持久化方法,把 PO 传递给它完成持久化操作。
DO、PO、BO、DTO、VO等概念的更多相关文章
- 关于各种O,DO/BO/DTO/VO/AO/PO
阿里巴巴Java开发手册 链接:https://pan.baidu.com/s/11I9ViOrat-Bw_HA8yItXwA 密码:x5yi 2. DO/BO/DTO/VO/AO/PO PO(per ...
- 【转】PO/POJO/BO/DTO/VO的区别
PO :persistent object持久对象 1 .有时也被称为Data对象,对应数据库中的entity,可以简单认为一个PO对应数据库中的一条记录. 2 .在hibernate持久化框架中 ...
- PO/POJO/BO/DTO/VO的区别(转)
PO :persistent object持久对象 1 .有时也被称为Data对象,对应数据库中的entity,可以简单认为一个PO对应数据库中的一条记录. 2 .在hibernate持久化框架中与i ...
- 阿里java开发手册中命名规约解读之DO/BO/DTO/VO/AO
前言 在阅读<阿里巴巴Java开发手册>时,看到命名规则中有这样一条 虽然知道这些是根据Java对象的角色所分配名称的后缀,但是没有弄清楚分别是什么意思,日常开发中也没有使用到. 网上查找 ...
- PO BO VO DTO POJO DAO DO
PO BO DTO VO 归在一起叫是POJO,简单java对象:DAO 是进行数据库增删改查的类,DO不确定有没有. 重点说下POJO PO 持久对象,数据: BO 业务对象,封装对象.复杂对象 , ...
- [转载]PO BO VO DTO POJO DAO概念及其作用
原文链接:http://jeoff.blog.51cto.com/186264/88517/ POJO = pure old java object or plain ordinary java ob ...
- PO BO VO DTO POJO DAO 概念及其作用
PO BO VO DTO POJO DAO 概念及其作用(附转换图) 博客分类: java javadaovopojobo J2EE开发中大量的专业缩略语很是让人迷惑, 特别是对于刚毕业 ...
- 转:PO BO VO DTO POJO DAO概念及其作用
J2EE开发中大量的专业缩略语很是让人迷惑,尤其是跟一些高手讨论问题的时候,三分钟就被人家满口的专业术语喷晕了,PO VO BO DTO POJO DAO,一大堆的就来了(听过老罗对这种现象的批判的朋 ...
- [转]PO BO VO DTO POJO DAO概念及其作用(附转换图)
来源:http://www.blogjava.net/vip01/archive/2013/05/25/92430.html J2EE开发中大量的专业缩略语很是让人迷惑,尤其是跟一些高手讨论问题的时候 ...
- PO BO VO DTO POJO DAO概念及其作用(附转换图)
J2EE开发中大量的专业缩略语很是让人迷惑,尤其是跟一些高手讨论问题的时候,三分钟就被人家满口的专业术语喷晕了,PO VO BO DTO POJO DAO,一大堆的就来了(听过老罗对这种现象的批判的朋 ...
随机推荐
- Shell-2-命令之乐
1.cat (1)基本用法 [root@cai tmp]# cat 1.txt 2.txt this is a test1 this is a test 2 (2)cat -s file(删除额外空白 ...
- CI框架源码学习笔记5——Hooks.php
接着Benchmark.php往下看,下一个引入的文件是Hooks.php,我们称之为钩子.它的目的是在不改变核心文件的基础上,来修改框架的内部运作流程.具体使用方法参见手册http://codeig ...
- 屏幕字段不允许直接输入,只能通过SearchHelp(F4)
---恢复内容开始--- REPORT z_barry_test NO STANDARD PAGE HEADING . PARAMETERS: p_date TYPE sy-datum , ...
- 缩点【洛谷P1262】 间谍网络
[洛谷P1262] 间谍网络 题目描述 由于外国间谍的大量渗入,国家安全正处于高度的危机之中.如果A间谍手中掌握着关于B间谍的犯罪证据,则称A可以揭发B.有些间谍收受贿赂,只要给他们一定数量的美元,他 ...
- django基础学习
{{forloop.counter}} 这是html的自增序号 GET请求可以直接从URL中获取信息,POST请求不可以,可以把信息藏到一个隐藏的input文本框中 orm 的概念就是对象关系映射 ...
- SQL常用性能统计语句
1.查看SQL语句IO消耗 set statistics io on sql 语句 set statistics io off 2.查看SQL语句时间消耗 set statistics tim ...
- bios-----> grub
系统有两块硬盘, 第一块安装的win7, 第二块安装ubuntu 默认从sda加载grub 如果在bios页面选择从sdb启动,会找不到grub 进入原来的sda系统, grub-install / ...
- 事务背书 ACID, CAP, BASE
A atomicity 原子性 一个事务(transaction)中的所有操作,要么全部完成,要么全部不完成, C consistency 一致性 在事务开始之前和事务结束以后,数据库的完整性没有被破 ...
- Python IDLE快捷键汇总
Python IDLE快捷键汇总 在Options→configure IDLE→keys,查看现存的快捷键,也可以配置选择快捷 编辑状态时: Ctrl+Shift+space(默认与输入法冲突,修改 ...
- 《mac的git安装手册-2》
<mac的git安装手册-2> 下载地址 https://git-scm.com/downloads 如果遇到打不开的情况,请在系统偏好设置内——>安全性与隐私下 ——>选择仍 ...