POJO、DO、DTO、VO的区别
1、概念
(1) 在分布式系统中,系统之间可通过DTO进行数据传输 (2) DTO只是简单的数据传输,没有业务逻辑的处理 (3) 使用DTO的好处:1、避免传递过多无用数据,提高数据传输速度;2、隐藏后端表结构 (4) POJO是DO/DTO/BO/VO的统称
2、需要VO的原因
(1) 如Service层有getUser方法返回用户,User有属性gender (2) Service层对gender的定义:1-Male,2-Female,0-Undefine (3) Web层对gender的定义:1-HandsomeBoy,2-PrettyGirl,0-Secret 为何不在Service层直接定义为Web层的内容? (1) 对于客户端风格制定要求不高、后端服务的客户端就1、2个,可通过Service层直接定义 (2) 若该后端服务面向多个客户端,且它们要求自定义的风格迥异,即不同的客户端对于表现层的要求有所不同 (3) 且从设计层面上分析,Service层只负责业务,与具体的表现形式无关,因此它返回的DTO,不应与表现形式耦合,需通过VO解决
3、DTO与VO的区别
(1) DTO表示Service层需接收、返回的数据,VO表示Web层需显示的数据 (2) 假设DTO中有某时间属性格式为Date/yyyy-MM-dd-HH-mm-ss,由于VO需向前端返回页面所需的数据格式,因此可能需转成"yyyy年MM月dd月"
4、DTO与DO的区别
(1) 假设某表有10个字段,则其对应的DO就有10个属性,但页面只需显示4个属性,因此没有必要将整个DO对象传递给Web层,只需把页面所需的4个属性封装为DTO,将其传递给Web层即可;若该POJO作为界面显示对象,则它就为VO (2) DTO可只取有含义的业务字段,DO是和数据库记录的一一映射,但DTO只需要按照业务需求定义所需字段