PO VO DTO BO区别

简介: PO VO DTO BO区别

PO:


Persistant Object 持久对象


最形象的理解就是一个PO就是数据库中的一条记录。

好处是可以把一条记录作为一个对象处理,可以方便的转为其它对象。


BO:


Business Object 业务对象


主要作用是把业务逻辑封装为一个对象。这个对象可以包括一个或多个其它的对象。

比如一个简历,有教育经历、工作经历、社会关系等等。

我们可以把教育经历对应一个PO,工作经历对应一个PO,社会关系对应一个PO。

建立一个对应简历的BO对象处理简历,每个BO包含这些PO。

这样处理业务逻辑时,我们就可以针对BO去处理。


VO :


View Object 表现层对象


主要对应界面显示的数据对象。对于一个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。


相关文章
|
Web App开发 前端开发 JavaScript
Web开发者必收藏的10个实用网站,你还没收藏吗?
将这些网站收藏起来,定期访问,使它们成为您日常工作的一部分,助您在快速发展的 Web 开发领域保持领先。
391 2
Web开发者必收藏的10个实用网站,你还没收藏吗?
|
机器学习/深度学习 存储 算法
基于机器学习的地震预测(Earthquake Prediction with Machine Learning)(下)
基于机器学习的地震预测(Earthquake Prediction with Machine Learning)
347 0
|
安全 区块链 数据安全/隐私保护
探索区块链技术在金融领域的创新应用
【6月更文挑战第23天】本文旨在深入探讨区块链技术如何革新传统金融行业,从理论到实践案例,全面分析其在提高交易效率、降低成本、增强安全性等方面的潜力与挑战。文章将重点介绍智能合约、去中心化金融(DeFi)以及跨境支付等应用,并讨论实施这些技术时所面临的法律和监管障碍。
542 5
|
存储 数据可视化 计算机视觉
基于YOLOv8的自定义数据姿势估计
基于YOLOv8的自定义数据姿势估计
|
编译器 C++
【c++】运算符重载
【c++】运算符重载
【c++】运算符重载
|
运维 数据可视化 Cloud Native
2023年受人欢迎的低代码开发平台大盘点
随着企业对于降低成本和加快软件开发的需求增加,低代码开发平台逐渐成为一种受欢迎的选择。这些平台提供了拖放界面和预置组件,使得开发人员可以用更少的代码创建复杂的应用软件。低代码开发平台不仅有助于企业加速数字化转型,而且还能打破业务部门和IT部门之间的沟通障碍,让业务需求能够更快地得到实现。
|
Python
Python OS 文件/目录方法
Python OS 文件/目录方法
201 0
|
SQL 存储 关系型数据库
|
人工智能 程序员 API
如何在手机端体验“AI智能交互对话模式”?
Chat-GPT的火爆,让国内崛起的“百度文心”逊色不少,但依托PC端支撑才得以体验的AI,还是把大多用户拒之门外。 今天,我们就来体验一下手机版的ChatGLM
602 0
如何在手机端体验“AI智能交互对话模式”?