DAO、DTO、PO、POJO、BO、VO、AO基本概念

一、基本概念:

DAO:Data access object 数据库访问对象

主要用来封装对数据库的访问,通过它可以把POJO持久化为PO,用PO组装出来VO、DTO。

DTO:Data Transfer Object数据传输对象

主要用于远程调用等需要大量传输对象的地方。比如我们一张表有100个字段,那么对应的PO就有100个属性。但是我们界面上只要显示10个字段,客户端用WEB service来获取数据,没有必要把整个PO对象传递到客户端。这时我们就可以用只有这10个属性的DTO来传递结果到客户端,这样也不会暴露服务端表结构.到达客户端以后,如果用这个对象来对应界面显示,那此时它的身份就转为VO。

PO:persistent Object 持久对象

有时也称Data对象,对应数据库中的Entity,简单的可以认为一个PO对应数据库的一个条记录。

BO:Bussiness Object对象

业务对象主要作用是把业务逻辑装为一个对象,这个对象可以包括一个或多其他对象。形象描述为一个对象的形为和动作,当然也有涉及到基它对象的一些形为和动作。比如处理一个人的业务逻辑,有睡觉,吃饭,工作,上班等等形为还有可能和别人发关系的形为。这样处理业务逻辑时,我们就可以针对BO去处理。

关于BO主要有三种概念:

  • 只包含业务对象的属性
  • 只包含业务方法
  • 两者都包含

VO:Value Object 值对象

主要体现在视图的对象,对于一个WEB页面将整个页面的属性封装成一个对象。然后用一个VO对象在控制层与视图层进行传输交换。

AO:Application Object

应用对象,在Web层与Service之间抽象的复用对象。

POJO:Plain Ordinary Java Object(POJO是一种概念或者接口,身份及作用随环境变化而变化) :

POJO有一些private的参数作为对象的属性。然后针对每个参数定义了get和set方法作为访问的接口。即POJO是一个简单的普通的Java对象,它不包含业务逻辑或持久逻辑等,但不是JavaBean、EntityBean等,不具有任何特殊角色和不继承或不实现任何其它Java框架的类或接口。POJO对象有时也被称为Data对象,大量应用于表现现实中的对象。 一个POJO持久化以后就是PO 。直接用它传递、传递过程中就是DTO,直接用来对应表示层就是VO 。

二、《阿里巴巴Java开发规范》关于领域模型的部分介绍如下:

分层领域模型规约:

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

  •  DTO(Data Transfer Object):数据传输对象,Service 或 Manager 向外传输的对象。

  •  BO(Business Object):业务对象,由 Service 层输出的封装业务逻辑的对象。

  •   AO(ApplicationObject):应用对象,在Web层与Service层之间抽象的复用对象模型, 极为贴近展示层,复用度不高。

  •   VO(View Object):显示层对象,通常是 Web 向模板渲染引擎层传输的对象。

  •  Query:数据查询对象,各层接收上层的查询请求。注意超过 2 个参数的查询封装,禁止

    使用 Map 类来传输。

三、转换图:

四:常见的转换方法:

(1)一种是通过IDEA插件实现快速自动生成转换代码.

Generate All setters插件,参见https://blog.csdn.net/w605283073/article/details/89163627

定义好参数和返回值,使用快捷方式可以轻松生成转换的代码。

(2)一种是通过第三方转换库来转换。

  • Apache org.apache.commons.beanutils.PropertyUtils.copyProperties
  • Apache org.apache.commons.beanutils.BeanUtils.copyProperties
  • Spring org.springframework.beans.BeanUtils.copyProperties
  • Cglib BeanCopier
  • Dozer
  • orika

原文链接:

https://blog.csdn.net/w605283073/article/details/89715188

https://blog.csdn.net/zl19861225/article/details/84410984

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值