首页 > 其他分享 >DO、BO、DTO、VO、AO、PO、UID 名词意义

DO、BO、DTO、VO、AO、PO、UID 名词意义

时间:2023-01-03 16:01:58浏览次数:27  
标签:DO Object DTO UID 对象 BO VO PO

DO、BO、DTO、VO、AO、PO、UID 名词意义

DO( Data Object):

数据源对象

  • 与数据库表结构一一对应,通过DAO层向上传输数据源对象。

BO(Business Object)

业务对象

  • 封装对象、复杂对象,里面可能包含多个类

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

  • 用于表示一个业务对象。BO 包括了业务逻辑,常常封装了对 DAO、RPC 等的调用,可以进行 PO 与 VO/DTO 之间的转换。BO 通常位于业务层,要区别于直接对外提供服务的服务层:BO 提供了基本业务单元的基本业务操作,在设计上属于被服务层业务流程调用的对象,一个业务流程可能需要调用多个 BO 来完成。

DTO(Data Transfer Object)

数据传输对象

  • 前端调用时传输;也可理解成“上层”调用时传输;

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

  • 用于表示一个数据传输对象。DTO 通常用于不同服务或服务不同分层之间的数据传输。DTO 与 VO 概念相似,并且通常情况下字段也基本一致。但 DTO 与 VO 又有一些不同,这个不同主要是设计理念上的,比如 API 服务需要使用的 DTO 就可能与 VO 存在差异。通常遵守 Java Bean 的规范,拥有 getter/setter 方法

VO(Value Object)

表现对象

  • 前端界面展示;value object值对象;ViewObject表现层对象;主要对应界面显示的数据对象。对于一个WEB页面,或者SWT、SWING的一个界面,用一个VO对象对应整个界面的值;对于Android而言即是activity或view中的数据元素。

  • 用于表示一个与前端进行交互的 java 对象。有的朋友也许有疑问,这里可不可以使用 PO 传递数据?实际上,这里的 VO 只包含前端需要展示的数据即可,对于前端不需要的数据,比如数据创建和修改的时间等字段,出于减少传输数据量大小和保护数据库结构不外泄的目的,不应该在 VO 中体现出来。通常遵守 Java Bean 的规范,拥有 getter/setter 方法。

AO( Application Object):

应用对象。

  • 在Web层与Service层之间抽象的复用对象模型,极为贴近展示层,复用度不高。

DAO(Data access object)

数据访问对象

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

  • 用于表示一个数据访问对象。使用 DAO 访问数据库,包括插入、更新、删除、查询等操作,与 PO 一起使用。DAO 一般在持久层,完全封装数据库操作,对外暴露的方法使得上层应用不需要关注数据库相关的任何信息。

PO (Persistant Object)

持久对象

  • 用于表示数据库中的一条记录映射成的 java 对象。PO 仅仅用于表示数据,没有任何数据操作。通常遵守 Java Bean 的规范,拥有 getter/setter 方法。

  • 可以理解是一个PO就是数据库中的一条记录;可以理解某个事务依赖的原始数据;好处是可以将一条记录最为一个对象处理,可以方便转化为其他对象

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

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

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

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

POJO(Plain ordinary java object)

简单java对象

标签:DO,Object,DTO,UID,对象,BO,VO,PO
From: https://www.cnblogs.com/zhangj9/p/17022498.html

相关文章

  • react Redux 用Redux中央仓库实现一个todolist
     Redux简单介绍Redux是一个用来管理管理数据状态和UI状态的JavaScript应用工具。随着JavaScript单页应用(SPA)开发日趋复杂,JavaScript需要管理比任何时候都要多的state(状态),Re......
  • windows下启动redis
    首先下载安装redis省略1、找到redis的安装目录,一般在C盘的programfiles文件夹下,进入redis文件夹2、打开命令行窗口,输入redis-server.exeredis.windows.conf3、......
  • [Godot] 多人联机小游戏基础导读
    参考项目:【蘩】[Godot教程]局域网联机小游戏制作教程ep6-基本联机功能的制作_哔哩哔哩_bilibili基础知识:远程调用RPC(remoteprocedurecall)RPC的修饰属性(不常用......
  • 一种用markdown写PPT的方法,再也不用费劲排版了
    今天看​​jeremyxu的技术点滴​​​,发现分享了一个​​markdown​​​写​​PPT​​的插件,惊为天人,先来看看官方效果图。再看看jeremyxu写的效果,我学完了都没学会是......
  • docker部署redis实战
    点击上方“编程三分钟”,马上关注,每天早上8:50准时推送。“ 换电脑的时候不想再搭建开发环境了!——编程三分钟”什么是dockerDocker是一个用来管理......
  • js Window对象
    //此属性表示窗口是否以全屏显示。Window.fullScreen//返回一个对history对象的引用。Window.history//history.back();//等同于点击浏览器的回退......
  • react todolist 3
    功能:1.输入框输入事项,点击add,list增加一条,输入框清空并且聚焦;2.点击当前checkbox,勾选文字为已完成,取消勾选文字为未完成;父组件TodoList.js分成了三个子组件TodoHeader,TodoI......
  • laravel生成PDF使用插件barryvdh/laravel-dompdf及中文乱码问题解决
    使用1.composer安装composerrequirebarryvdh/laravel-dompdf2.发布配置文件,生成的配置文件config/dompdf.php,也可选择忽略此步骤phpartisanvendor:publish......
  • windows 安装 apache
    认识ApacheApache是世界使用排名第一的Web服务器软件。它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一。它快速......
  • MarkDown基本使用方法
    Markdown基本语法使用一级标题二级标题三级标题字体加粗斜体斜体加粗去除线引用引用语法的使用>>分割线图片本地图片网络图片超链接baidu列表......