VO、DTO、DO、POJO的区别和概念

快速了解开发过程中VO、DTO、BO、 DO、PO、POJO、Entity的概念、区别、作用 快速了解VO、DTO、BO、DO、PO、POJO、Entity的概念、区别和作用 阅读详情
AI摘要

本文详细解析了VO(视图对象)、DTO(数据传输对象)、DO(领域对象)、POJO(简单Java对象)及PO(持久化对象)的概念与区别,阐述了它们在三层架构中的角色和应用场景。

1、概念:

VO(View Object):视图对象,用于页面展示层,它的作用是把某个指定页面(或组件)的数据封装起来,传输到前端页面上。

DTO(Data Transfer Object):数据传输对象,主要用于展示层与服务层之间的数据传输。

DO(Domain Object):领域对象(或称实体对象),就是从现实世界中抽象出来的有形或无形的业务实体。

POJO(Plain Ordinary Java Object):简单的Java对象,实际就是普通JavaBeans,是为了避免和EJB混淆所创造的简称,它不包含业务逻辑或持久逻辑等。POJO对象有时也被称为Data对象,大量应用于表现现实中的对象。一个POJO持久化以后就是PO。

2、区别:

这几个概念所应用的场景不同,在三层架构中各自的位置有所不同:

  • 前端发起请求或提交表单,请求中或表单里的数据传输到后端,在展示层被匹配为VO。
  • 展示层把VO转换为服务层对应方法所需要的DTO,传送给服务层。
  • 服务层根据DTO的数据构造或重建一个DO,然后再调用DO的业务方法来完成具体的业务。
  • 然后服务层再把DO转换为持久层对应的PO,调用持久层的持久化方法,把PO传递给它,完成持久化操作。

 

DTO和VO的区别及使用场景详解 DTO(Data Transfer Object)和 VO(Value Object)都是一种设计模式,用于封装数据和提供服务。VO(View Object):视图对象,专门用于前端展示层,专注于表示某个具体的值或对象的对象,包含业务逻辑;VO的作用是将一组数据以适合特定用户界面(UI)的形式封装起来,确保数据的呈现既符合设计要求也满足用户体验标准。例如我们有一个电子商务网站,其中产品详情页需要显示产品的名称、价格、库存、图片等信息。VO会将这些信息以最优化的方式组织起来,供前端展示。 阅读详情

相关推荐

深入解析JESD204B Periodic SYSREF在多ADC/DAC系统中的同步优化策略

本文深入探讨了JESD204B Periodic SYSREF在多ADC/DAC系统中的同步优化策略,针对雷达阵列和宽带通信系统中的同步精度问题,详细解析了硬件实现细节、参数配置实战经验及系统级优化方法。通过案例分析和技术要点,帮助工程师解决由温度漂移和时钟抖动引起的同步挑战,提升系统性能。

weixin_29267307的博客 137

浅析VO、DTO、DO、PO的概念、区别和用处

概念: VO(View Object):视图对象,用于展示层,它的作用是把某个指定页面(或组件)的所有数据封装起来。 DTO(Data Transfer Object):数据传输对象,这个概念来源于J2EE的设计模式,原来的目的是为了EJB的分布式应用提供粗粒度的数据实体,以减少分布式调用的次数,从而提高分布式调用的性能和降低网络负载,但在这里,我泛指用于展示层与服务层之间的数据传输对象。 DO(Domain Object):领域对象,就是从现实世界中抽象出来的有形或无形的业务实体。 PO(Persiste

YHJ 3万+

泛微Ecology9接口调用全流程:从配置到实战Java代码解析

本文详细解析了泛微Ecology9系统接口的完整调用流程,涵盖安全架构、服务端配置与客户端Java实战代码。重点阐述了基于RSA加密的认证机制、Token管理策略,并提供了企业级集成的核心代码示例与生产环境调优建议,帮助开发者安全、高效地实现系统对接。

m9n0o的博客 836

浅析VO、DTO、DO、PO、POJO区别

传统规范图 另一种规范图 整体流程 用户发出请求(可能是填写表单),表单的数据在展示层被匹配为VO。 展示层把VO转换为服务层对应方法所要求的DTO,传送给服务层。 服务层首先根据DTO的数据构造(或重建)一个DO,调用DO的业务方法完成具体业务。 服务层把DO转换为持久层对应的PO(可以使用ORM工具,也可以不用),调用持久层的持久化方法,把PO传递给它,完成持久化操作。 对于一个逆向操作,如读取数据,也是用类似的方式转换和传递,略。 VO(Value Object)值对象 视图对象,用于展示层,

骑个小蜗牛的博客 2万+

VisionMaster -Group循环、数组数据格式化

这里创建一个格式化工具,按照自己想要的模式格式化刚刚输出的数据。因为是检测多个物体,所以这里选择输出的是数组。第一次的模板很不满意,反复调整参数也没好,边缘不整齐,强迫症患者受不了。实测如果输入设置太多,会导致模块失效,所以尽量选择需要的少量参数。这里要打开循环使能,循环数值就是高精度匹配的匹配个数。Group输出设置里选择刚刚建立的数据集。左边是主流程,右边是组合模块内部流程。修改采图这里的曝光值,图像提亮一点。建一个数据集,把想要的数据收集起来。用TCP助手测试一下OK。成功得到了想要的数据。

weixin_69505365的博客 4529

熵权法+TOPSIS完整教学:用Python评估大学科研实力(含雷达图绘制技巧)

本文提供了一套完整的熵权法与TOPSIS综合评价方法在Python中的实现教程,以高校科研实力评估为例,详细讲解了从数据预处理、客观权重计算、综合排序到结果可视化的全流程。重点介绍了如何利用Python进行数据清洗与转换,通过熵权法自动确定指标权重,并结合TOPSIS模型计算各院校与理想解的相对接近度进行排名。教程还包含了使用Matplotlib绘制专业雷达图的技巧,帮助读者直观呈现多维数据的对比分析结果,适用于各类多指标决策与绩效评估场景。

weixin_28520495的博客 416

深扒 POJO、VO、DO、DTO、PO、BO、AO、DAO 的概念和区别,以及如何应用

POJO、VO、DO、DTO、PO、BO、AO 和 DAO 等术语被广泛应用于各种编程语言中。尽管这些术语是非常常见的,但是很多程序员依然无法清楚地理解它们之间的区别和关系。本文将深入探讨这些术语的含义和用途,帮助程序员更好地理解它们之间的差异和联系。

流华追梦的专栏 5812

innovus:Patch Wire(补丁线)

1)选中wire ,shift+A使用Edit Route功能,F3打开edit route对话框。线道Create Patch Wire,设置好层次和宽度。在修补一些min area的drc时,会有一些danling wire的drc冒出来,为了避免这些假错,可以使用工具patch wire功能。2)沿着选中的wire画线即可。如下图,patch wire和regular wire是能看出区别的。我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧?

m0_61544122的博客 1962

Java中VO/DTO/DO/PO/POJO/BO/DAO概念及其区别

来源:简书,链接:https://www.jianshu.com/p/ccdbef3ec75f VO(Value Object) 值对象 通常用于业务层之间的数据传递,和 PO 一样也是仅仅包含数据而已。但应是抽象出的业务对象 , 可以和表对应 , 也可以不 , 这根据业务的需要 。用 new 关键字创建,由 GC 回收的。 VO(View Object)视图对象 用于展示层,它的作用是把...

应无所住而生其心 3979

Android 编译系统(Build System)剖析

make是一种自动化构建工具,通过读取Makefile将源代码自动编译为可执行程序和库文件。

虎哥LoveDroid 2166

YOLOv11改进策略【模型轻量化】| 替换轻量化骨干网络:ShuffleNet V1

本文记录的是基于ShuffleNet V1的YOLOv11轻量化改进方法研究。ShuffleNet利用和操作降低计算成本,克服了现有先进架构在极小网络中因 1×1 卷积计算成本高而效率低的问题。相比一些传统的网络架构,能更好地。本文配置了原论文中和四种模型,以满足不同的需求。

Limiiiing的博客 1228

VO、DTO、BO、DO、PO、POJO、Entity的概念、区别和应用

首先是概念上的区别,DTO是展示层和服务层之间的数据传输对象(可以认为是两者之间的协议),而DO是对现实世界各种业务角色的抽象,这就引出了两者在数据上的区别,例如UserInfo和User(对于DTO和DO的命名规则,请参见笔者前面的一篇博文),对于一个getUser方法来说,本质上它永远不应该返回用户的密码,因此UserInfo至少比User少一个password的数据。此外,VO 也可以称为页面对象,如果称为页面对象的话,那么它所代表的将是整个页面展示层的对象,也可以由需要的业务对象进行组装而来。

u013507693的博客 1522

Lammps不同亲疏水性粗糙表面的润湿行为模拟(包含in文件)

Lammps粗糙表面的润湿行为模拟(包含in文件)前言—润湿行为模拟一、物理模型构建二、具体in文件—in文件内循环亲疏水性三、具体in文件—分子模板构建初始模型以及平衡态模拟四、全部代码(基地粗糙表面只提供data文件) 前言—润湿行为模拟 润湿现象:当液体与固体接触时,液体的附着层将沿固体表面延伸。当接触角 θ\rm \thetaθ 为锐角时,液体润湿固体,若θ为零时,液体将展延到全部固体表面上。润湿现象的产生与液体和固体的性质有关。(来自百度百科) 润湿行为的本质是固液之间的相互作用,也就是分子间的范

Rockyoung 7090

PO/DO/VO/DTO/BO/POJO概念与区别

一、介绍二、区别2.1 VO和DTO的区别与应用VO和DTO的区别VO与DTO的应用2.2 BO和DTO的区别三、相关的代码规范命名风格OOP 规约持久化对象,它跟持久层(通常是关系型数据库)的数据结构形成一一对应的映射关系,如果持久层是关系型数据库,那么,数据表中的每个字段(或若干个)就对应PO的一个(或若干个)属性。通过 DAO 层向上传输数据源对象。

~ 1264

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

理解POJO、VO、DTO、DO、PO的概念、作用、区别,详解在项目中的使用场景

说人话详解POJO、DTO、PO、VO、DO的作用、使用场景、项目中的位置与区别。

yiyissssz的博客 1934

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

对DO VO BO DTO POJO的概念与区别(笔记)

说实话,我相信对于刚接触 PO、VO、BO、DTO、DAO 和 POJO   第 1 个:DAO  DAO(Data Access Object)数据访问对象,它是一个面向对象的数据库接口,负责持久层的操作,为业务层提供接口,主要用来封装对数据库的访问,常见操作无外乎 CURD。我们也可以认为一个 DAO 对应一个 POJO 的对象,它位于业务逻辑与数据库资源中间,可以结合 PO 对数据库进行相关...

weixin_41888669的博客 2万+

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

深入解析Java开发中的VO、DTO、BO、DO、PO、POJO、Entity:概念、区别与应用场景

本文深入解析Java开发中VO、DTO、BO、DO、PO、POJO、Entity等核心对象的概念、区别与应用场景。通过实际案例,阐明分层架构下各对象的职责,如Entity/DO用于数据映射,BO封装业务逻辑,DTO负责服务间传输,VO面向视图展示,旨在提升代码可维护性、安全性并遵循单一职责原则。

ggg99的专栏 468

VO BO PO DO DTO DAO POJO概念及区别

VO BO PO DO DTO DAO POJO 概念及区别 1.VO( value object) 即值对象 VO就是展示用的数据,不管展示方式是网页,还是客户端,还是APP,只要是这个东西是让人看到的,这就叫VO VO主要的存在形式就是js里面的对象(也可以简单理解成json) 2.DTO(Data Transfer Object) 即数据传输对象,DTO有两种存在形式: ①在后端,他的存在形式是请求的入参,也就是在controller里面定义的参数 ②在前端,他的存在形式通常是js里面的对象(

weixin_43363878的博客 1178

对DO VO BO DTO POJO的概念与区别

DAO DAO(Data Access Object)数据访问对象,它是一个面向对象的数据库接口,负责持久层的操作,为业务层提供接口,主要用来封装对数据库的访问,常见操作无外乎 CURD。我们也可以认为一个 DAO 对应一个 POJO 的对象,它位于业务逻辑与数据库资源中间,可以结合 PO 对数据库进行相关的操作。 PO PO(Persistent Object)持久层对象,它是由一组属性和属性的get和set方法组成,最简单的 PO 就是对应数据库中某个表中的一条记录(也就是说,我们可以将数据库表中的一条

qq_45062541的博客 186
上一篇: 谈谈RabbitMQ的相关概念
下一篇: 解决org.hibernate.LazyInitializationException: could not initialize proxy - no Session报错-懒加载问题
林晓风
博客等级 码龄9年 772粉丝 32原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值