首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >2019-04-01 POJO PO BO DO DTO VO的区别分别代表什么含义

2019-04-01 POJO PO BO DO DTO VO的区别分别代表什么含义

作者头像
Albert陈凯
发布2019-04-09 17:36:07
2.1K0
发布2019-04-09 17:36:07
举报
文章被收录于专栏:Albert陈凯Albert陈凯Albert陈凯

阿里巴巴Java开发手册中的DO、DTO、BO、AO、VO、POJO定义

分层领域模型规约:

  • DO( Data Object):与数据库表结构一一对应,通过DAO层向上传输数据源对象。
  • DTO( Data Transfer Object):数据传输对象,Service或Manager向外传输的对象。
  • BO( Business Object):业务对象。 由Service层输出的封装业务逻辑的对象。
  • AO( Application Object):应用对象。 在Web层与Service层之间抽象的复用对象模型,极为贴近展示层,复用度不高。
  • VO( View Object):显示层对象,通常是Web向模板渲染引擎层传输的对象。
  • POJO( Plain Ordinary Java Object):在本手册中, POJO专指只有setter/getter/toString的简单类,包括DO/DTO/BO/VO等。
  • Query:数据查询对象,各层接收上层的查询请求。 注意超过2个参数的查询封装,禁止使用Map类来传输。

领域模型命名规约:

  • 数据对象:xxxDO,xxx即为数据表名。
  • 数据传输对象:xxxDTO,xxx为业务领域相关的名称。
  • 展示对象:xxxVO,xxx一般为网页名称。
  • POJO是DO/DTO/BO/VO的统称,禁止命名成xxxPOJO。

POJO PO BO DO DTO VO 概述 缩写 全称 中文 功能 说明 POJO plain ordinary java object 无规则简单java对象 中间对象,与其他对象转换 PO persistent object 持久对象 数据对象对应数据库中的entity BO business object 业务对象 封装业务逻辑对象 VO value object / view object 表现层对象 封装视图层对象 DTO data transfer object 数据传输对象 跨进程或远程传输 DO domain object 领域对象 从现实世界中抽象出来的有形或无形的业务实体 DAO data access object 数据访问对象 封装对数据库访问对象 问题 为什么项目中要存在多种对象,多种对象直接需要相互转换,是否无用? 举例:数据插入操作 HTTP: (Controller 层 )VO 对象 --> (Service 层) BO 对象 --> (DAO 层) PO 对象 --> DAO 对象 RPC : (RPC 接口)DTO 对象 --> --> (Service 层) BO 对象 --> (DAO 层) PO 对象 --> DAO 对象 回答: 世界上有大狗(可以看家护院)的存在也有小狗存在的必要,没有一种事务的存在是没有理由的 代码中不同的层次需要使用不同的对象,使用不同的对象是为了更好的理解业务及解决问题 举例: PO / DO 对象通常对应数据表实体映射对象;如果没有BO对象,此时业务需求需要将时间格式化后展示,需要在PO类中增加属性,但增加的属性却不是表中应有的字段,使PO类的含义发生了变化 如设计活动,活动实体是一张表,活动页面样式、活动优惠等等又是一张表,在将数据返给前端时,前端不需要知道后端是几张表的实现,只需要知道解析这个对象中的相关属性即可;此时需要BO对象来中转,BO对象对应多个PO对象 有这种疑问通常是BO与PO对象的属性完全没有区别,此时需要考虑程序业务逻辑,是否需要将查询结果全部返回给调用方 参考资料 PO/POJO/BO/DTO/VO的区别 Java中PO、BO、VO、DTO、POJO、DAO概念及其作用和项目实例图(转) Java中DO/BO/DTO/VO/AO/PO


作者:命运的左岸 来源:CSDN 原文:https://blog.csdn.net/mingyundezuoan/article/details/82926809 版权声明:本文为博主原创文章,转载请附上博文链接!

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

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

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

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

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