DTO-VO-DO-Query理解

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。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值