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对象在控制层与视图层进行传输交换。

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)

bo JAVA是什么意思_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. entity、bo、vo、po、dto、pojo如何理解和区分?

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

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

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

  5. POJO VO PO DTO 和JavaBean

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

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

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

  7. 浅析 VO、DTO、DO、PO 的概念、区别和用处!

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 来源:cnblogs.com/qixuejia/p/4390086 ...

  8. 分层架构使用DTO,VO,PO

    1.什么是DTO,VO,PO DTO : 业务层之间数据传输用的 VO : 前端页面请求对象,以及页面返回对象 数据的封装 PO : 数据库实体对象 2.MVC 架构中的使用 用户-->cont ...

  9. Java中PO、BO、VO、DTO、POJO、DAO概念及其作用和项目实例图(转)

    PO(bean.entity等命名): Persistant Object持久对象,数据库表中的记录在java对象中的显示状态 最形象的理解就是一个PO就是数据库中的一条记录. 好处是可以把一条记录作 ...

最新文章

  1. ARZIO让AR应用制作变得更简单
  2. 【Jmeter】 Report Dashboard 生成html图形测试报告
  3. sublime Text 2 安装Sublime Package Control
  4. python新闻管理系统_python项目——新闻管理系统
  5. 重磅!四部委发文,以后买房可以省几十万元!
  6. ASP.NET Core之跨平台的实时性能监控
  7. 星痕 轻松实现大屏数据可视化_数据美的历程有多难?大屏可视化轻松帮你实现...
  8. 关于form标签,你该知道
  9. 160 - 44 defiler.1.exe
  10. php 5.6 引用传递,升级到5.6.x后如何在php中修复引用传递
  11. 角点 python实现_100行代码,带你玩转OpenCV-Python基础API
  12. Photoshop英汉对照表
  13. Jensen不等式的证明
  14. oracle 总僵尸进程,subprocess子进程kill后存在僵尸进程的原因及处理方法
  15. python 爬虫保存为word_微信公众号文章爬虫,本地word文档保存
  16. php编写出一个时钟,用HTML5实现一个时钟
  17. mt6573 环境配置
  18. 测试工程师入门知识点整理
  19. 理解不够,还是不够专业?程序员与架构师之间的联系
  20. airtest上的滑动操作swipe

热门文章

  1. 多人协作git workflow规范
  2. 从一个URL到页面渲染完成发生了什么?
  3. java 微信转账 ca_error_java,微信支付退款_微信支付退款接口调用证书出现错误,java,微信支付退款,ssl - phpStudy...
  4. 如何调用百度卫星地图
  5. GOF设计模式之外观模式(结构型代理模式)
  6. 实践GoF的23种设计模式:建造者模式
  7. 用单片机c语言播放两只老虎,两只老虎的C程序的频率和音符??
  8. 计算机与科学hh,Mary-第十六届和谐人机环境联合学术会议 (HHME2020)
  9. 知道自己不知道不可怕,可怕的是不知道自己不知道 No.148
  10. linux中.emp结尾的文件,EMP文件扩展名 - 什么是.emp以及如何打开? - ReviverSoft