1.接口层VO和逻辑层DO
1.xxDO是数据库直接取来或注册进去的数据,基本和xxMapper.java以及xxMapper.xml有关
xxVO通常是和H5界面直接相关的数据,
两者在代码中相互转换
比如 PatientDO patient = convertVO2DO(patientVO);
user_client里的vo有3个…VO类,均继承于Serializable接口。
private static xxVO convertDO2VO(XXDO xxDO) {
XXVO xxVO = new PatientVO();
xxVO.setPatientName(xxDO.getPatientName());
xxVO.setUserId(xxDO.getUserId());
...
return xxVO;
}
调用则是XXVO xxVO = convertDO2VO(xxDO);
2.Serializable接口是Java提供给类来序列化的空接口,啥都没有是因为接口是给JVM看的。
下面以user-client里vo的InquiryOrderVO()方法为例。
import java.io.Serializable;
public class InquiryOrderVO implements Serializable {
/*以下内容都是举例子用的*/
private static final long serialVersionUID = 1L;
private Long corpId;
private String doctPictureUrl;//医生头像url
private String illnessDesc;//病情描述
private String doctorSex;//医生性别
//会话状态 1.进行中 2.医生发起结束,待用户确认 3.会话结束
private Integer conversationStatus;
/**
* 预约时间/就诊时间
*/
private Date medDate;
/**
* 问诊类型 1-图文问诊 2-视频问诊
*/
private Integer inquiryType;
......
}
这个VO类中的字段们在run后都在堆内存中,程序执行完毕后内存得到释放,字段值也不复存在。如果现在计算机要把这个类的实例发送到另一台机器、或是想保存这个VO类的实例到数据库(持久化对象),以便以后再取出来用。这时就需要对这个类进行序列化,便于传送或保存。用的时候再反序列化重新生成这个对象的实例。