阿里巴巴Java开发手册中的DO、DTO、BO、AO、VO、POJO定义

阿里巴巴Java开发手册中的DO、DTO、BO、AO、VO、POJO定义

分层领域模型规约:

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

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

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

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

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

  • PO(Persistant Object) :持久对象,用于表示数据库中的一条记录映射成的 java 对象。PO 仅仅用于表示数据,没有任何数据操作。通常遵守 Java Bean 的规范,拥有 getter/setter 方法。

  • POJO( Plain Ordinary Java Object):在阿里手册中, POJO专指只有setter/getter/toString的简单类,包括DO/DTO/BO/VO等。

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

  • DAO(Data access object): 数据访问对象,主要用来封装对数据库的访问。通过它可以把POJO持久化为PO,用PO组装出来VO、DTO;

    用于表示一个数据访问对象。使用 DAO 访问数据库,包括插入、更新、删除、查询等操作,与 PO 一起使用。DAO 一般在持久层,完全封装数据库操作,对外暴露的方法使得上层应用不需要关注数据库相关的任何信息。

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

领域模型命名规约:

  • 数据对象:xxxDO,xxx即为数据表名。
  • 数据传输对象:xxxDTO,xxx为业务领域相关的名称。
  • 展示对象:xxxVO,xxx一般为网页名称。
  • POJO是DO/DTO/BO/VO的统称,禁止命名成xxxPOJO。

个人理解

举例

有一张user表 有这么几个字段,id,name,sex,address,create_time,update_time

PO:就是对应的User(包含数据库中的所有字段,有getter和setter方法)这么一个类

DTO: 就是可以写一个UserDTO可以用于RPC啥的

DAO:就相当于我们写的mapper用来crud

VO:就是将user中需要的信息返回给视图,展示的话不需要更新时间、创建时间这种

BO:业务封装我没什么理解,但是应该就是把user类和其他类业务需要的字段组合成一个BO来操作

POJO:DO/DTO/BO/VO都叫POJO

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

清尘丿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值