近期编码,总是会遇到各层之间数据结构的各种转换,不约而同的就遇到了VO,PO,DTO等不同的数据概念,而我一直对这些概念云里雾里,今天查了一些资料,势必要将其研究清楚。
首先来看一张图,源自知乎@史墨轩
VO
首先来了解一下VO,我这里愿称之为VIEW OBJECT,展示层所用对象,VO就是展示用的数据,不管展示方式是网页,还是客户端,还是APP,只要是这个东西是让人看到的,这就叫VO
VO主要的存在形式就是js里面的对象(也可以简单理解成json)
DTO(Data Transfer Object)数据传输对象
DTO,我的理解是放在逻辑处理层使用的数据对象,用于代码逻辑中的各种处理。
PO(Persistant Object)持久对象
PO,我的理解是与数据库相对应数据对象,用于和数据库交互,结构应当与数据库中表结构相互一致。
BO(Business Object)业务对象
目前针对于BO,我还没有使用过,不过看了相关资料,BO应当是PO的组合,例如PO是一个商品,BO可能就是一系列商品的集合等,这个有待使用之后再补充
总结
简单总结一下,就是PO用于数据库交互,DTO用于中间逻辑处理,VO用于最后数据展示。