1、实体
实体与我们都数据库表是一一对应的,实体中的每个字段与表中的字段也是一一对应的。
2、do
接收应用层传给domain层的参数(也可以用实体接收)。
domain层接收的参数必须是在domain层存在的对象
3、po
domain层返回应用层结果,使用po(也可以用实体)。
domain层返回应用层结果必须使用在domain层存在的对象
4、dto
dto是数据传输对象,主要用于外部接口参数传递封装,接口与接口进行传递使用。通俗的理解:接收前端传来的参数使用dto,我们做具体的新增、编辑操作时,可以转换成实体或者do传到domain层。
5、vo
vo 是视图对象,主要用于给前端返回页面参数使用。
下图是在开发过程中我对于实体、dto、vo、po、do使用的理解。
理解
这个时候,有种po和do很多余的感觉
1、首先来说po,既然domain层可以返回实体或者po,当实体字段太多时,我们用po就好了,为什么还要定义vo呢?比如查询结果设计两个模块的内容,我们可以调用两次domain,返回对应的po,然后两个po会组合成新的vo返回给前端。
2、do,前端使用dto给后端传递参数是不区分模块的,比如对于后端来说是两个模块,前端的查询条件在一个页面,后端使用dto接收,对应相应的模块在domain层做操作时,我们可以将dto转换成对应模块的do给domain层传递参数。