VO(View Object)
普遍用于Controller,用于与前端相交互的一个pojo。一般和前端契合
DTO(Data Transfer Object)
普遍用于Service,用于数据库交互的一个pojo,一般用于Entity与DTO的转化
Entity
用于实体类,一般用于映射数据库。
以上的三者没有本质上的区别,都是pojo。但是在设计层面上他们代表的含义和内容都不同。
作用我认为
- 方便业务逻辑清楚,各层使用不同pojo,转化过程明显有序
- 就如同Controller不可以(架构上)直接调用DAO一样,作用和这差不多
阿里java开发规范中
B) 领域模型命名规约
- 数据对象:xxxDO,xxx 即为数据表名。
- 数据传输对象:xxxDTO,xxx 为业务领域相关的名称。
- 展示对象:xxxVO,xxx 一般为网页名称。 4) POJO 是 DO/DTO/BO/VO 的统称,禁止命名成 xxxPOJO。