【杂记】DO、DTO、BO、Query、VO

零 l  引言


1、《阿里巴巴Java开发手册》关于领域模型的部分介绍如下:

分层领域模型规约:

  • DO(Data Object):此对象与数据库表结构一一对应,通过 DAO 层向上传输数据源对象。
  • DTO(Data Transfer Object):数据传输对象,Service 或 Manager 向外传输的对象。
  • BO(Business Object):业务对象,可以由 Service 层输出的封装业务逻辑的对象。
  • Query:数据查询对象,各层接收上层的查询请求。注意超过 2 个参数的查询封装,禁止使用 Map 类
    来传输。
  • VO(View Object):显示层对象,通常是 Web 向模板渲染引擎层传输的对象。

2、此外还存在

  • POJO(plain ordinary java object):最基本的 Java Bean ,只有属性字段及 setter、getter、toString等方法。
  • PO(Persistent Object):持久化对象,它跟持久层(通常是关系型数据库)的数据结构形成一一对应的映射关系,如果持久层是关系型数据库,那么,数据表中的每个字段(或若干个)就对应PO的一个(或若干个)属性。
  • AO(ApplicationObject):应用对象,在Web层与Service层之间抽象的复用对象模型, 极为贴近展示层,复用度不高。

第一次看的时候有点一头雾水,所以记录下自己的理解。


一 l  理解


这里使用常用的MVC三层进行说明(标粗的为常用定义)

1、从数据库到前端

DAO层->Service层:

  1. 【DO】:POJO类属性与数据单表一一对应
  2. 【PO】:POJO类属性与数据单表不一一对应(如:有多个表的数据)

Service层->Controller层(Web层):

  1. 【DTO】:Service层到Controller层POJO类的统称
  2. 【BO】:【DTO】的子集,【PO】的组合,特指只包含需要属性的POJO类

Controller层(Web层)->前端:

  1. 【VO】:Controller层给到前端的POJO类

2、从前端到数据库

前端->Controller层(Web层):

  1. 【VO】:前端提交给Controller层的POJO类
  2. 【Query】:Controller层接收前端的查询请求

Controller层(Web层)->Service层:

  1. 【DTO】:Controller层到Service层POJO类的统称
  2. 【BO】:【DTO】的子集,【PO】的组合,特指只包含需要属性的POJO类
  3. 【Query】:Service层接收Controller层的查询请求

Service层->DAO层:

  1. 【DO】:POJO类属性与数据单表一一对应
  2. 【PO】:POJO类属性与数据单表不一一对应(如:有多个表的数据)
  3. 【Query】:DAO层接收Service层的查询请求
  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值