PO VO DTO等说明
一篇文章讲清楚VO,BO,PO,DO,DTO的区别 - 知乎 (zhihu.com)
PO,BO,VO,DTO和POJO的区别_小猴子的博客-CSDN博客
上述文章给出的建议:
1,PO这个没法省,不管叫PO还是Entity,怎么着都得有
2,一些工具类的系统和一些业务不是很复杂的系统DTO是可以和BO合并成一个,当业务扩展的时候注意拆分就行
3,VO是可以第一个优化掉的,展示业务不复杂的可以压根儿不要,直接用DTO
4,这也是最重要的一条,概念是给人用的,多人协作的时候一定要保证大家的概念一致
5 PO VO 各种对象的转换有工具类快速实现
个人理解 只要记住:
1 数据库的表对应到基于mybatis-plus生成的entity 即PO中
2 后端返回给前端时 在service层要对业务数据进行处理
①数据转换 比如把”1“换为“男”或者“公子” 再存入新对象中
②数据修剪 比如查到的年龄不需要,就不要存到新对象中
这个新对象就叫VO,VO的数据和数据库中的数据在数量和内容上并不对应,这个VO就是返回给前端的数据
3 关于DTO
比如一张表有100个字段,那么对应的PO就有100个属性(大多数情况下,DTO内的数据来自多个表)。
但view层只需显示10个字段,没有必要把整个PO对象传递到client,这时我们就可以用只有这10个属性的DTO来传输数据到client,这样也不会暴露server端表结构。到达客户端以后,如果用这个对象来对应界面显示,那此时它的身份就转为VO
简易的关系图: