admin 管理员组

文章数量: 887031

DTO

POJO/PO/DO/Entity/DTO/VO/Query个人理解

  • POJO:Plain Ordinary Java Object,普通java对象。
  • PO:Persistent Object,持久化对象。
  • DO:Data Object,数据对象。
  • Entity:实体对象。
  • DTO:Data Transfer Object,数据传输对象。
  • VO:View Object,视图对象。
  • Query:数据查询对象。

POJO:POJO专指只有setter/getter/toString的简单类,包括DO/DTO/BO/VO等。
PO/DO/Entity:三者是一个东西,与数据库结构一一对应,通过DAO(Mapper)层向上传输数据。
DTO:Service层向外传输的数据对象。
VO:Controller层返回给前端的对象。
Query:各层接收上层的查询请求。 注意超过2个参数的查询封装,禁止使用Map类来传输。

后端接收前端

​ 有的人认为前端给后端传是视图层的交互,应该用VO,但也有人认为是接收的参数,应该用DTO。两个我都用过,现在感觉第一种更合理,改为使用VO。

DTO和VO

​ 对于绝大部分的应用场景来说,DTO和VO的属性值基本是一致的,只用其一即可。两者都用的场景,比如:1-男,2-女。需要映射处理,如果在服务层处理,在设计层面从职责单一原则来看,服务层只负责业务,与具体的表现形式无关,返回的DTO,不应该出现与表现形式的耦合。

领域模型命名规约

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

本文标签: DTO