前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >VO、DTO、BO、PO、DO区别

VO、DTO、BO、PO、DO区别

作者头像
十玖八柒
发布2022-08-01 09:22:28
8.8K0
发布2022-08-01 09:22:28
举报
文章被收录于专栏:ahzoo.cn的博客分享

前言

  • 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中返回的字段为:

代码语言:javascript
复制
{
    "sex": "女",
}

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

代码语言:javascript
复制
{
    "sex": "女演员",
}

例子2: DTO:

代码语言:javascript
复制
{
    "sex": "男",
    "age": "17"
}

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

代码语言:javascript
复制
{
    "age": "未成年"
}

PO与DO

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

代码语言:javascript
复制
{
    "id": "999",
    "name": "ahzoo"
}

PO2:

代码语言:javascript
复制
{
    "userId": "999",
    "role": "管理员"
}

DO:

代码语言:javascript
复制
{
    "id": "999",
    "name": "ahzoo",
    "role": "管理员"
}

BO和PO

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

代码语言:javascript
复制
{
    "id": "999",
    "name": "ahzoo",
    "password":"123456"
}

BO层的放回字段:

代码语言:javascript
复制
{
    "id": "999",
    "name": "ahzoo"
}

我的博客即将同步至腾讯云开发者社区,邀请大家一同入驻:https://cloud.tencent.com/developer/support-plan?invite_code=1illw5frinnv7

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-06-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • VO与DTO
  • PO与DO
  • BO和PO
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档