VO、DTO、BO、PO、DO区别

news/2024/11/8 18:48:56/

VO、DTO、BO、PO、DO区别

  • VO:(View Object)视图对象,一般位于Controller层,用于展示视图。
  • DTO:(Data Transfer Object)数据传输对象, 即RPC 接口请求或传输出去的对象,用于展示层与服务层之间的数据传输对象。
  • BO:(Business Object)业务层对象,一般位于Service层,它与 DO 会有一定的属性差别。
  • PO:(Persistent Object)持久化对象,对象属性与数据库字段形成映射关系。
  • DO:(Domain Object)领域对象,就是从现实世界中抽象出来的有形或无形的业务实体,可以当成BO;(Data Object)数据层对象,对象属性与数据库字段形成映射关系,可以当成PO

在这里插入图片描述

VO与DTO

  • VO:展示层需要展示的数据。
  • DTO:业务逻辑层需要接收的数据和返回的数据。

VO与DTO的属性值基本相同,但是VO是DTO的最终解释,可以对DTO的字段进行适当删减。 举个例子:

例子1

DTO中返回的字段为

{"sex": "女",
}

对于大部分需求来说中返回的字段为中返回的字段就已经够用了,但是如果说业务的需求是展示具体的身份,那就需要在VO层进行进一步解释, VO中返回的字段为:

{"sex": "女演员",
}

例子2

DTO

{"sex": "男","age": "17"
}

如果说展示层只需要展示是否成年, VO:

{"age": "未成年"
}

PO与DO

  • PO:通常来说是只有get/set方法的POJO,也就是常说的实体类。
  • DO:一般是PO的组合,也就是多表联查的映射。

例子1

PO1:

{"id": "999","name": "ahzoo"
}

PO2:

{"userId": "999","role": "管理员"
}

DO:

{"id": "999","name": "ahzoo","role": "管理员"
}

BO和PO

BO:与PO的区别是,BO会删掉一些不宜在展示层展示的数据,只对外提供必要的字段属性。 比如用户需要查询用户的信息,通常来说这个返回给用户的用户信息是不应该包含密码之类的一些字段的,那么我们就可以在BO层做一下处理。

举例, 如果用PO层的话返回的字段为:

{"id": "999","name": "ahzoo","password":"123456"
}

BO层的放回字段:

{"id": "999","name": "ahzoo"
}

http://www.ppmy.cn/news/428014.html

相关文章

VODODTOPO

概述 经常会接触到VO,DO,DTO的概念,本文从领域建模中的实体划分和项目中的实际应用情况两个角度,对这几个概念进行简析。 一般而言,VO对应于页面上需要显示的数据(表单),DO对应于数…

VO、DTO、DO、PO

浅析VO、DTO、DO、PO 概念 VO(View Object): 视图对象,主要对应界面显示的数据对象。对于一个WEB页面,或者SWT、SWING的一个界面,用一个VO对象对应整个界面的值。BO(business object)&#xf…

VDO(Virtual Data Optimize虚拟数据优化)

作者:吴业亮 博客:wuyeliang.blog.csdn.net VDO(Virtual Data Optimize虚拟数据优化):通过压缩或删除存储设备上的数据来优化存储空间 VDO层放置在现有块存储设备例如RAID设备或本地磁盘的顶部。这些块设备也可以是加密设备。存储…

DO、DTO和VO分别是什么?

在Java中,DO、DTO和VO分别表示数据对象(Data Object)、数据传输对象(Data Transfer Object)和值对象(Value Object),它们有以下区别: 1. DO(数据对象&#x…

三、Docker的基本组成和常用命令(一)

文章目录 Docker的基本组成镜像(image)容器(container)仓库(repository)总结 Docker的常用命令帮助命令镜像命令docker imagesdocker searchdocker pulldocker rmi Docker的基本组成 镜像(image) Docker 镜像(Image)就是一个只读的模板。镜像可以用来创…

如何构建LAMP平台:Apache,MySQL,PHP

如何构建LAMP平台:Apache,MySQL,PHP 一、Apache网站服务:1. Apache的起源(多系统兼容):2.重要特点:3.软件版本:4.编译安装呢http服务器: 二、LAMP简介与概述&…

我是一名普通机器视觉工程师,胸无大志又何妨,平平淡淡又怎样!最终归宿,看大门,放放羊!

康耐视智能相机Insight-缺陷检测 我平常写文章经常把一句话写在文章中: 对于年轻人来说,需要工作,更需要生活。 对于年轻人来说,需要努力,更需要“面包”。 对于年轻人来说,需要规划,更需要发展。 如果不是你想要的,你可以尽快花上一段时间调整下自己,但是时间不要…

C高级 day35

1、ubuntu的网络配置 1、查看网络是否连接 ping baidu.com 2、保证虚拟机有桥接网络 虚拟机---->设置---->网络适配器------>选择桥接或者是Vmnet0 给虚拟机添加桥接网络,如果没有vmnet0,添加网络 3、配置虚拟机的桥接网络 右上角网络图标-----…