多样化的模型类
现在项目中有两类模型类:DTO数据传输对象、PO持久化对象,DTO用于接口层向业务层之间传输数
据,PO用于业务层与持久层之间传输数据,有些公司还会设置VO对象,VO对象用在前端与接口层之间
传输数据,如下图:
当前端有多个平台且接口存在差异时就需要设置VO对象用于前端和接口层传输数据。
比如:
课程列表查询接口,根据用户需求用户在手机端也要查询课程信息,此时课程查询接口是否需要编写手
机端和PC端两个接口呢?
如果用户要求通过手机和PC的查询条件或查询结果不一样,此时就需要定义两个Controller课程查询接
口,每个接口定义VO对象与前端传输数据。
手机查询:根据课程状态查询,查询结果只有课程名称和课程状态。
PC查询:可以根据课程名称、课程状态、课程审核状态等条件查询,查询结果也比手机查询结果内容
多。
此时,Service业务层尽量提供一个业务接口,即使两个前端接口需要的数据不一样,Service可以提供
一个最全查询结果,由Controller进行数据整合
总结:
vo是controller层接收前端参数用的,
dto是service需要的参数
po是数据库层面的,和表一一对应的
接口层也就是controller层的存在,是为了实现不同平台,很多个前端的时候,对于每个前端都有特定的controller接收请求。因此也可能存在多个vo。
service是通用的业务方法,dto可能由多个vo组成