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

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 类来传输

为什么要这么设计?

你可能感兴趣的:(前后端,架构师成长之路,数据层,开发规范,阿里巴巴,web,Dao)