关于VO、DTO的一些事

2/26/2022 DDD

先来看下阿里规范中【参考】分层领域模型规约:

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

其中常见的莫过于DTO和VO。

# DTO

数据传输对象,无业务逻辑。有时候也充当VO。

# VO

争议貌似在这,不仅仅View Objetct,还有Value Object值对象。使用DTO可以区分开。

DO还有时候用作领域对象,

看公司的使用规范吧。使用统一的开发规范当然更好。