Java开发过程中,基本实体类包都以entity或者model来称呼,可是不少项目中,却以Bo、Vo来命名,面试的时候,也有可能被问到这些问题。那么,这几者分别代表什么意思呢?

Entity

最常用实体类,基本和数据表一一对应,一个实体一张表。

Bo(business object)

代表业务对象的意思,Bo就是把业务逻辑封装为一个对象(注意是逻辑,业务逻辑),这个对象可以包括一个或多个其它的对象。通过调用Dao方法,结合Po或Vo进行业务操作。

形象描述为一个对象的形为和动作,当然也有涉及到基它对象的一些形为和动作。比如处理一个人的业务逻辑,该人会睡觉,吃饭,工作,上班等等行为,还有可能和别人发关系的行为,处理这样的业务逻辑时,我们就可以针对BO去处理。

再比如投保人是一个Po,被保险人是一个Po,险种信息也是一个Po等等,他们组合起来就是一张保单的Bo。

Vo(value object)

代表值对象的意思,通常用于业务层之间的数据传递,由new创建,由GC回收。
主要体现在视图的对象,对于一个WEB页面将整个页面的属性封装成一个对象,然后用一个VO对象在控制层与视图层进行传输交换。

关系图.png

Po(persistant object)

代表持久层对象的意思,对应数据库中表的字段,数据库表中的记录在java对象中的显示状态,最形象的理解就是一个PO就是数据库中的一条记录。

好处是可以把一条记录作为一个对象处理,可以方便的转为其它对象。Vo和Po,都是属性加上属性的get和set方法;表面看没什么不同,但代表的含义是完全不同的。

Dto(data transfer object)

代表数据传输对象的意思
是一种设计模式之间传输数据的软件应用系统,数据传输目标往往是数据访问对象从数据库中检索数据
数据传输对象与数据交互对象或数据访问对象之间的差异是一个以不具任何行为除了存储和检索的数据(访问和存取器)
简而言之,就是接口之间传递的数据封装
表里面有十几个字段:id,name,gender(M/F),age……
页面需要展示三个字段:name,gender(男/女),age
DTO由此产生,一是能提高数据传输的速度(减少了传输字段),二能隐藏后端表结构

Pojo(plian ordinary java object)

代表简单无规则java对象
纯的传统意义的java对象,最基本的Java Bean只有属性加上属性的get和set方法

可以额转化为PO、DTO、VO;比如POJO在传输过程中就是DTO

Dao(data access object)

代表数据访问对象的意思,是sun的一个标准j2ee设计模式的接口之一,负责持久层的操作 。这个基本都了解,Dao和上面几个O区别最大,基本没有互相转化的可能性和必要,主要用来封装对数据的访问,注意,是对数据的访问,不是对数据库的访问。

Controller

代表控制层,主要是Action/Servlet等构成(Spring MVC则是通过@Controller标签使用)此层业务层与视图层打交道的中间层,负责传输VO对象和调用BO层的业务方法,负责视图层请求的数据处理后响应给视图层。

View

代表视图层的意思,主要是指由JSP、HTML等文件形成的显示层。

所以实际项目中,一般都是这样应用的:
控制层(controller-action),业务层/服务层( bo-manager-service),实体层(po-entity),dao(dao),视图对象(Vo-),视图层(view-jsp/html)

作者:莫问以
链接:https://www.jianshu.com/p/b934b0d72602
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

【转】entity、bo、vo、po、dto、pojo如何理解和区分?相关推荐

  1. Java基础 - AO BO DO PO VO DAO DTO POJO

    Java基础 - AO BO DO PO VO DAO DTO POJO AO Application Object 应用对象. 在Web层与Service层之间抽象的复用对象模型,极为贴近展示层,复 ...

  2. 关于JAVA Bean实体类对象pojo,vo,po,dto,entity之间的区别

    关于JAVA Bean实体类对象pojo,vo,po,dto,entity之间的区别: Pojo: Pojo 普通的java对象 最基本的javaBean只有属性 加上属性的get,set方法,可以转 ...

  3. Java学习笔记——实体类(ENTITY,VO,DTO,BO)

    最近在写代码的时候,对于Entity.VO.DTO.BO的概念有些混淆,不太了解具体的用途以及作用,所以想梳理一下. 阿里巴巴Java开发手册中的分层领域模型规约: DO(Data Object):此 ...

  4. entity、bo、vo、po、dto、pojo如何理解和区分?

    Entity 最常用实体类,基本和数据表一一对应,一个实体一张表. Bo(business object) 代表业务对象的意思,Bo就是把业务逻辑封装为一个对象(注意是逻辑,业务逻辑),这个对象可以包 ...

  5. bo JAVA是什么意思_entity、bo、vo、po、dto、pojo如何理解和区分?

    Java开发过程中,基本实体类包都以entity或者model来称呼,可是不少项目中,却以Bo.Vo来命名,面试的时候,也有可能被问到这些问题.那么,这几者分别代表什么意思呢? Entity 最常用实 ...

  6. POJO VO PO DTO 和JavaBean

    最近在阿里手册的是突然看见PO,VO等名词发现自己还没有一个清晰的概念所以做了一些笔记. 我 给这些概念画了个关系图. pojo 为了和EJB区分而生的.就是一个简单的java对象也就是在构建这个类的 ...

  7. entity、vo、dto简单理解

    1.概念 VO(View Object):视图对象,用于页面展示层,它的作用是把某个指定页面(或组件)的数据封装起来,传输到前端页面上. DTO(Data Transfer Object):数据传输对 ...

  8. VO,PO,DTO,BO的使用

    为什么有这么多的O? po 一般来说对应数据库实体. update语句中用的最多. dto dto数据层操作对象. 为什么要有dto呢? 举个简单的例子: createDate 是创建时间,现在要筛选 ...

  9. DO、PO、VO、DTO、BO、POJO概念

    DO.PO.VO.DTO.BO.POJO DO (Data Object):与数据库表结构一一对应,通过DAO层向上传输数据源对象. 一般就是从数据库查询的信息,将这些信息封装成DO类, DAO层将D ...

最新文章

  1. 【SLAM后端】—— ceres优化相机位姿求解
  2. 关于Linux用户管理相关研究-------(二)
  3. linux修改系统时间为北京时间(CentOS)
  4. 【转】刨根究底CSS(1):开篇
  5. 利用selenium webdriver点击alert提示框
  6. Jeecg-Boot上传及下载附件异常处理
  7. 多VLAN配置DHCP
  8. ofdma技术_数字化领航 | Wi-Fi 6 关键技术剖析
  9. $ 在 JQuery 里的意思
  10. 支持傲腾技术的服务器主板,华硕200系主板安装英特尔傲腾内存教程
  11. Reportlab生成图文并茂的pdf报告
  12. LOJ#10064. 「一本通 3.1 例 1」黑暗城堡
  13. 稻城亚丁神州租车自驾游,一生一定要去一次的地方
  14. 视频网站的工作原理-->m3u8视频文件的提取与解析(理论)
  15. 《革命之路-目击众神死亡的草原上野花一片》
  16. 第1章 Java程序设计概述
  17. 静态工具类使用单例对象线程安全问题注意1
  18. 动画原理与网络游戏设计——课程学习笔记1~3周
  19. 找出矩阵在行中最大、列中最小的元素 C语言
  20. ubuntu18.04安装qq

热门文章

  1. 优思学院|取得六西格玛黑带经验谈
  2. 辐射强度 BRDF概念定义明晰
  3. 利用Try-with-resources(TWR)读取Excel文件
  4. 一阶rc matlab,matlab – 一阶RC滤波器的时间离散实现
  5. 京东11.11:京东中间件如何支撑起每一场大促
  6. 解决 Arch/Manjaro Linux AUR 的 MindMaster 无法输入中文和登录的问题
  7. 某云服务器挖矿病毒查杀日记
  8. sqoop迁移oracle数据到TDH
  9. 【MATLAB】(四)MATLAB在线性代数中的应用
  10. MAPSTRUCT(@Mapper用法)