PO BO VO DTO POJO DAO概念及其作用(附转换图)

VO DTO 实体类的区别 java java简单基础 需要的了解一下 我们大家还是有必要去区分的 立即下载
J2EE开发中大量的专业缩略语很是让人迷惑,尤其是跟一些高手讨论问题的时候,三分钟就被人家满口的专业术语喷晕了,PO VO BO DTO POJO DAO,一大堆的就来了(听过老罗对这种现象的批判的朋友会会心一笑)。

    首先声明偶也不是什么高手,以下总结都是自己的体会。不对之处请您多指教。

PO:
persistant object持久对象

最形象的理解就是一个PO就是数据库中的一条记录。
好处是可以把一条记录作为一个对象处理,可以方便的转为其它对象。

 



BO:
business object业务对象

主要作用是把业务逻辑封装为一个对象。这个对象可以包括一个或多个其它的对象。
比如一个简历,有教育经历、工作经历、社会关系等等。
我们可以把教育经历对应一个PO,工作经历对应一个PO,社会关系对应一个PO。
建立一个对应简历的BO对象处理简历,每个BO包含这些PO。
这样处理业务逻辑时,我们就可以针对BO去处理。

 



VO :
value object值对象
ViewObject表现层对象

主要对应界面显示的数据对象。对于一个WEB页面,或者SWT、SWING的一个界面,用一个VO对象对应整个界面的值。

 



DTO :
Data Transfer Object数据传输对象
主要用于远程调用等需要大量传输对象的地方。
比如我们一张表有100个字段,那么对应的PO就有100个属性。
但是我们界面上只要显示10个字段,
客户端用WEB service来获取数据,没有必要把整个PO对象传递到客户端,
这时我们就可以用只有这10个属性的DTO来传递结果到客户端,这样也不会暴露服务端表结构.到达客户端以后,如果用这个对象来对应界面显示,那此时它的身份就转为VO

 



POJO :
plain ordinary java object 简单java对象
个人感觉POJO是最常见最多变的对象,是一个中间对象,也是我们最常打交道的对象。

一个POJO持久化以后就是PO
直接用它传递、传递过程中就是DTO
直接用来对应表示层就是VO

 


DAO:
data access object数据访问对象
这个大家最熟悉,和上面几个O区别最大,基本没有互相转化的可能性和必要.
主要用来封装对数据库的访问。通过它可以把POJO持久化为PO,用PO组装出来VO、DTO


      总结下我认为一个对象究竟是什么O要看具体环境,在不同的层、不同的应用场合,对象的身份也不一样,而且对象身份的转化也是很自然的。就像你对老婆来说就是老公,对父母来说就是子女。设计这些概念的初衷不是为了唬人而是为了更好的理解和处理各种逻辑,让大家能更好的去用面向对象的方式处理问题.

      大家千万不要陷入过度设计,大可不必为了设计而设计一定要在代码中区分各个对象。一句话技术是为应用服务的。

欢迎指正。



画了个图,感觉没有完全表达出自己的意思。。。。。谁帮忙完善下,最好能体现各个O在MVC中的位置
snap20070108.jpg  
帕塞瓦尔定理(Parseval‘s theorem)的证明 帕塞瓦尔定理(Parseval's theorem)表明了信号在时域和频域上的能量相等。 阅读详情

相关推荐

ESP32 开发实战:VS Code 头文件波浪线及编译错误的终极解决方案

本文针对ESP32开发者在VS Code中常见的头文件红色波浪线和fatal error编译错误,提供了终极解决方案。通过详细讲解如何配置c_cpp_properties.json文件来修复编辑器智能提示,以及如何修改CMakeLists.txt来修正编译器路径,帮助开发者彻底解决环境配置问题,提升开发效率。

prometheus9mon的博客 294

多数据源框架baomidou实战

本文来说下多数据源框架baomidou 文章目录概述 概述

wh柒八九的博客 1129

QCM6490平台DDR测试:从QDUTT配置到眼图分析的实战指南

本文详细介绍了QCM6490平台DDR测试的全流程,从QDUTT工具安装配置到眼图分析,提供了实战操作指南和常见问题解决方案。通过具体案例分享,帮助工程师掌握DDR测试技巧,确保内存稳定性,特别适用于物联网和边缘计算设备的开发调试。

weixin_33910191的博客 459

别乱分层,PO、VO、DAO、BO、DTO、POJO 到底应该用在哪里,你知道吗?

前言一个项目中不一定都能用得上全部的分层规约,但十分有必要了解每一种的用法,便于去阅读其他人的代码。同样的,虽然遵守规约写代码可能会略微拉低你写代码的速度(PS:多写一些实体类),但越是规范化,模板化的东西,后期的维护成本和学习成本会越低。《阿里巴巴Java开发规范》关于领域模型的部分介绍如下分层领域模型规约:DO(Data Object):此对象与数据库表结构一一对应,通过 DAO 层向上传输数...

Java知音 1096

手把手教你逆向抖店滑块验证码:从抓包到生成captchaBody的完整流程(附Python复现代码)

本文详细解析了抖店滑块验证码的逆向过程,从抓包分析到参数生成,最终用Python完整复现验证流程。涵盖关键接口分析、指纹参数生成、轨迹加密逻辑及核心加密算法实现,帮助开发者突破抖店的多重安全机制,实现高效的人机验证绕过。

weixin_30681121的博客 425

Linux故障排查和性能优化面试题及参考答案

在 Linux 系统中,负载(Load Average)是衡量系统繁忙程度的一个重要指标,它表示系统在特定时间间隔内运行队列中的平均进程数。负载值反映了系统当前的工作压力,主要包括 CPU 等待运行的进程数量和处于不可中断睡眠状态(通常是等待 I/O 操作完成)的进程数量。负载平均值通常有三个数值,分别代表过去 1 分钟、5 分钟和 15 分钟内的系统平均负载。例如,在使用uptime命令或查看文件时,会看到类似这样的输出,这三个数值依次表示过去 1 分钟、5 分钟和 15 分钟的负载平均值。

大模型大数据攻城狮的专栏 1082

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

DTO 主要用于解耦应用中不同模块之间的耦合度。DO (Domain Object) 领域对象是指在领域建模过程中直接映射到概念的对象,它反映了业务需求和领域知识的本质,是业务流程中的实体对象。PO (Persistent Object) 持久化对象是用来和数据库表进行交互的对象,通常与数据库中的一张表对应。BO 包含了某个业务流程的全部或部分实现逻辑,可以进行业务操作和处理业务逻辑,具有较强的业务含义。Entity 实体是指在面向对象程序设计中,与概念相对应的真实存在的事物,它可以是一个对象或值对象。

weixin_62246465的博客 897

无人飞行器和车辆的协同配送物资问题——附带MATLAB代码

通过建立城市地图、生成物资点和配送任务、路径规划、协同调度以及仿真和评估等步骤,可以有效地解决物资配送的优化问题。通过建立城市地图、生成物资点和配送任务、路径规划、协同调度以及仿真和评估等步骤,可以有效地解决物资配送的优化问题。我们的目标是最小化物资配送的总时间,同时确保每个物资点都被正确配送的无人飞行器或车辆所访问。我们的目标是最小化物资配送的总时间,同时确保每个物资点都被正确配送的无人飞行器或车辆所访问。我们首先需要建立一个城市地图,包括物资点、无人飞行器的起始点和车辆的起始点。

CyberJolt的博客 950

Java开发各层对象含义 PO,VO,DAO,BO,POJO

Java开发各层对象含义 PO,VO,DAO,BO,POJO java的几种对象(PO,VO,DAO,BO,POJO)解释 PO: persistant object 持久对象,可以看成是与数据库中的表相映射的java对象。最简单的PO就是对应数据库中某个表中的一条记录,多个记录可以用PO的集合。PO中应该不包含任何对数据库的操作。拥有getter/setter方法。 DAO: data ...

oooo2316的博客 2182

vue接入海康4G版摄像头通过萤石云平台推送视频流教程

vue-video-player接入海康视频,videojs-contrib-hls,vue播放视频

renkai721的专栏 7278

零基础入门红外与可见光图像融合:DAF-Net 实战全指南

本文介绍了基于DAF-Net的红外与可见光图像融合技术,主要内容包括:技术原理、环境配置、数据准备和模型实现。DAF-Net通过双分支特征提取和动态注意力融合机制,有效结合红外图像的热辐射信息与可见光图像的纹理细节。文章详细讲解了开发环境搭建步骤(Python 3.8+PyTorch),TNO数据集的预处理方法,并提供了完整的DAF-Net实现代码,包含特征提取、注意力融合和图像重建三个关键模块。该技术可广泛应用于安防监控、自动驾驶等领域,帮助开发者快速入门多模态图像融合。

FJN110的博客 123

POJO、PO、VO、DTO、DO、DAO,各种“O”傻傻分不清

       在Java开发过程中,我们会遇到很多以“O”结尾的类名,刚开始看的时候,傻傻分不清,不都是一个Java类吗?为什么还要分这么多种类,今天就让我们来看看他们各是做什么用的? 几种“O”的定义 POJO(plian ordinary java object)        简单普通的Java对象,就是最简单的Java对象,最基本的Java Bean只是在属性上

MyKelly_2013 1972

华为OD机试双机位C卷-部门人力分配 (Py/Java/C/C++/Js/Go)

华为OD机试(机考)双机位C卷 【部门人力分配】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为OD机试 - 部门人力分配。

qq_45776114的博客 1874

JavaWeb - PO、BO、VO、DTO、POJO、DAO 概念 & 作用(附:转换图)

前言 J2EE开发中大量的专业缩略语很是让人迷惑,尤其是跟一些高手讨论问题的时候,三分钟就被人家满口的专业术语喷晕了,PO VO BO DTO POJO DAO,一大堆的就来了(听过老罗对这种现象的批判的朋友会会心一笑)。 首先声明偶也不是什么高手,以下总结都是自己的体会。不对之处请您多指教。 PO Persistant Object:持久对象。 最形象的理解就是一个 PO 就...

2004

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

dto转化 vo_PO BO VO DTO POJO DAO 概念及其作用(附转换图)

J2EE开发中大量的专业缩略语很是让人迷惑, 特别是对于刚毕业的新人来说更是摸不清头脑。若与公司大牛谈技术人家出口就是PO VO BO DTO POJO DAO 等,让新人们无比仰慕大牛。为了让新人快速成为牛人,今天我详细的为大家介绍这些专业名词。PO(bean,entity等命名):persistant object持久对象,数据库表中的记录在java对象中的显示状态最形象的理解就是一个PO就是...

weixin_39930557的博客 411

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

PO BO VO DTO POJO DAO 概念及其作用(附转换图)

        J2EE开发中大量的专业缩略语很是让人迷惑, 特别是对于刚毕业的新人来说更是摸不清头脑。若与公司大牛谈技术人家出口就是PO VO BO DTO POJO DAO 等,让新人们无比仰慕大牛。    为了让新人快速成为牛人,今天我详细的为大家介绍这些专业名词。   企业级项目实战(带源码)地址:  http://zz563143188.iteye.com/blo...

zl19861225的专栏 4034

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

bo dto java vo_PO BO VO DTO POJO DAO概念及其作用(附转换图)

J2EE开发中大量的专业缩略语很是让人迷惑,尤其是跟一些高手讨论问题的时候,三分钟就被人家满口的专业术语喷晕了,PO VO BO DTO POJO DAO,一大堆的就来了(听过老罗对这种现象的批判的朋友会会心一笑)。首先声明偶也不是什么高手,以下总结都是自己的体会。不对之处请您多指教。PO:persistant object持久对象最形象的理解就是一个PO就是数据库中的一条记录。好处是可以把一条记...

weixin_39668199的博客 146

[j2ee]PO BO VO DTO POJO DAO概念及其作用(附转换图)

原文地址: http://www.blogjava.net/vip01/archive/2007/01/08/92430.html  J2EE开发中大量的专业缩略语很是让人迷惑,尤其是跟一些高手讨论问题的时候,三分钟就被人家满口的专业术语喷晕了,PO VO BO DTO POJO DAO,一大堆的就来了(听过老罗对这种现象的批判的朋友会会心一笑)。     首先声明偶

wendellup的专栏 2005
上一篇: 动态ActionForm使用随笔
下一篇: 关于Struts的select
esteem
博客等级 码龄22年 3粉丝 56原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值