阿里巴巴开发规范中DO,DTO,VO,Query,AO的区别和作用

阿里巴巴的分层领域模型规约中,DO用于数据库映射,DTO用于Service向外传输,AO是Web层与Service层间的复用对象,VO针对前端显示,Query封装多参数查询。这样的设计旨在减少不必要的数据传输,增强安全性,以及满足不同层的数据需求。
摘要由CSDN通过智能技术生成

N 年前我们的项目里可能只有一个 POJO,无论数据库映射,数据库查询返回对象,service 接口返回对象,还是 controller 返回对象,基本都是使用同一个 POJO,在多人协作时,避免不了有人增加属性,修改 POJO。在前端请求接口时可能暴露很多额外的信息,我们可能会做多余属性去除操作。

阿里巴巴的分层领域模型规约:

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

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

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

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

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

为什么要这么设计?

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

代码讲故事

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

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

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

打赏作者

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

抵扣说明:

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

余额充值