PO,VO,POJO,BO,DTO,DO,JavaBean

在这之前我先说一下,在阿里巴巴开发手册中有提到这种领域模型命名规约,即如下图:

下面是更加详细的介绍:

po

PO(Persistant Object)可以看成是与数据库中的表相映射的java对象。最简单的PO就是对应数据库中某个表中的一条记录,多个记录可以用PO的集合。PO中应该不包含任何对数据库的操作。
好处就是可以把一条记录作为一个对象处理,可以方便的转为其他对象。

vo

VO值对象,通常用于业务层之间的数据传递,与PO一样仅包含数据,根据业务的需要与抽象出的业务对象实现对应或者非对应。
VO主要对应界面显示的数据对象。对于一个WEB页面,或者SWT/SWING的一个界面,用一个VO对象对应整个界面的值。

pojo

POJO(Plain Ordinary Java Object简单无规则java对象)是纯粹的传统意义的java对象。就是说在一些Object/Relation Mapping工具中,能够做到维护数据库表记录的persisent object完全是一个符合Java Bean规范的纯Java对象,没有增加别的属性和方法,即,最基本的Java Bean,只有属性字段及setter和getter方法!

  • 一个POJO持久化以后就是PO;
  • 直接用它传递,传递过程中就是DTO;
  • 直接用来对应表示层就是VO。

bo

BO(Business Object)业务对象,封装业务逻辑的java对象,通过调用DAO方法,结合PO,VO进行业务操作。这个对象可以包括一个或多个其它的对象。
比如一个简历,有教育经历、工作经历、 关系等等。我们可以把教育经历对应一个PO,工作经历对应一个PO, 关系对应一个PO。建立一个对应简历的BO对象处理简历,每个BO包含这些PO。这样处理业务逻辑时,我们就可以针对BO去处理。
关于BO主要有三种概念 :

  • 只包含业务对象的属性;
  • 只包含业务方法;
  • 两者都包含。
    在实际使用中,认为哪一种概念正确并不重要,关键是实际应用中适合自己项目的需要

dto

DTO(Data Transfer Object,数据传输对象)主要用于远程调用等需要大量传输对象的地方。
比如说,我们一张表有100个字段,那么对应的PO就有100个属性。但是我们界面上只要显示10个字段, 客户端用WEB service来获取数据,没有必要把整个PO对象传递到客户端, 这时我们就可以用只有这10个属性的DTO来传递结果到客户端,这样也不会暴露服务端表结构.到达客户端以后,如果用这个对象来对应界面显示,那此时它的身份就转为VO。
DTO 是一组需要跨进程或网络边界传输的聚合数据的简单容器。它不应该包含业务逻辑,并将其行为限制为诸如内部一致性检查和基本验证之类的活动。注意,不要因实 现这些方法而导致 DTO 依赖于任何新类。在设计数据传输对象时,您有两种主要选择:使用一般集合;或使用显式的 getter 和 setter 方法创建自定义对象

do

DO( Data Object):与数据库表结构一一对应,通过DAO层向上传输数据源对象。

JavaBean

JavaBean 是一种JAVA语言写成的可重用组件。为写成JavaBean,类必须是具体的和公共的,并且具有无参数的构造器。JavaBean 通过提供符合一致性设计模式的公共方法将内部域暴露成员属性,set和get方法获取。众所周知,属性名称符合这种模式,其他Java 类可以通过自省机制(反射机制)发现和操作这些JavaBean 的属性。

领域模型命名规约【PO,VO,POJO,BO,DTO,DO,JavaBean】相关推荐

  1. java vo命名规则_阿里java开发手册中命名规约解读之DO/BO/DTO/VO/AO

    前言 在阅读<阿里巴巴Java开发手册>时,看到命名规则中有这样一条 虽然知道这些是根据Java对象的角色所分配名称的后缀,但是没有弄清楚分别是什么意思,日常开发中也没有使用到. 网上查找 ...

  2. java的(PO,VO,TO,BO,DAO,POJO)解释

    java的(PO,VO,TO,BO,DAO,POJO)解释    O/R Mapping 是 Object Relational Mapping(对象关系映射)的缩写.通俗点讲,就是将对象与关系数据库 ...

  3. java的(PO,VO,TO,BO,DAO,POJO)解释1

    java的(PO,VO,TO,BO,DAO,POJO)解释  O/R Mapping 是 Object Relational Mapping(对象关系映射)的缩写.通俗点讲,就是将对象与关系数据库绑定 ...

  4. java: PO,VO,TO,BO,DAO,POJO 解释

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. O/R Mapping 是 Object Relational Mapping(对象关系映射)的缩写 ...

  5. java反射po转vo_Java项目的(PO,VO,TO,BO,DAO,POJO)解释(转)

    它们是由一组属性和属性的get和set方法组成.从结构上看,它们并没有什么不同的地方.但从其意义和本质上来看是完全不同的. 区别 1.VO是用new关键字创建,由GC回收的. PO则是向数据库中添加新 ...

  6. java的(PO,VO,TO,BO,DAO,POJO)类名包名解释

    java的(PO,VO,TO,BO,DAO,POJO)解释 action包  顾名思义请求,主要是和view 即我们所说的视图就是页面打交道,action类 是 操作方法,对于页 面Form 表单的操 ...

  7. java的几种对象(PO,VO,DAO,BO,POJO)解释

    本文转自: http://blog.csdn.net/bzhxuexi/article/details/8227808 Java的几种对象(PO,VO,DAO,BO,POJO)解释   一.PO:pe ...

  8. java的几种对象(PO,VO,DAO,BO,POJO)解释(转)

      [ 作者:赵小刀 ][ 大小:1k ][ 发布日期:2005-08-22 ][ 浏览:8678 ]      java的几种对象(PO,VO,DAO,BO,POJO)解释      一.PO:pe ...

  9. 分层领域模型规约与领域模型命名规约

    一.分层领域模型规约 DO(Data Object):与数据库表结构一一对应,通过DAO层向上传输数据源对象. DTO(Data Transfer Object):数据传输对象,Service或Man ...

最新文章

  1. 梯度下降法 —— 经典的优化方法
  2. Java方向如何准备BAT技术面试答案
  3. 科大星云诗社动态20210207
  4. SAP Cloud for Customer的跳转链接制作navigation link
  5. LeetCode 1444. 切披萨的方案数(DP)
  6. js 取得数组下标_剖析JS和Redis的数据结构设计:数组
  7. 使用.pk8 和.pem签名生成.keystore 签名
  8. 物联网:Android端控制ZigBee实现生产环境自动控制
  9. Delphi 制作股票分时图
  10. P5706 【深基2.例8】再分肥宅水
  11. GO语言-panic和recover
  12. C语言猜数字游戏及关机程序
  13. 超分辨率技术:Adobe Photoshop与深度神经网络对比
  14. js字符串首字母大写其他小写
  15. iphone开发中内存利用说明
  16. LintCode(M) 乱序字符串
  17. 朱善利《微观经济学》第3版课后习题答案
  18. IPsec中IKE与ISAKMP过程分析(快速模式-消息2)
  19. 使用FileZilla等软件搭建ftp服务器
  20. ie8视频播放器兼容

热门文章

  1. window.Event参数详解
  2. CodeForces - 1459C Row GCD(数论+推公式)
  3. POJ - 3694 Network(边双缩点+LCA+并查集优化)
  4. HDU - 4821 String(字符串哈希+优化)
  5. linux 提交git,linux下git使用记录1 git 提交
  6. 微信小程序- 初试小程序之tabbar(选项卡,底部导航)的使用
  7. 使用docker构建并测试一个基于Sinatra的Web应用程序
  8. 伯努利数与自然数幂和
  9. 没登录网页也能个性化推荐?一文详解浏览器指纹
  10. AWS 用户指南笔记