分享职场生活、职场攻略、程序员创业资源,为一线开发者提供优质内容
有一位java求职者,三年工作经验,面试时问到VO和DTO有什么区别,他回答不出来,知识面挺广的,就是不够深入,薪资要15k,能不能要?
1、PO (Persistent Object)entity实体 里的每一个字段,与数据库表的字段相对应,
2、VO 有两种理解,个人倾向第二种
VO:值对象(Value Object) 通常用于业务层之间的数据传递
VO (View Object)表现层对象,主要对应展示界面显示的数据对象,用一个VO对象来封装整个界面展示所需要的对象数据。
3、DTO 数据传输对象(Data Transfer Object)是一种设计模式之间传输数据的软件应用系统。用来转换从 entity 到 VO,或者从 VO到 entity 的中间的东西 。
举个例子来说明:
Web页面上有三个信息要展示,username,remark,gender
而数据库表里,有两个字段,userName,remark, 没有 gender。
这是VO一般有三个成员变量来对于Web的三个信息。
private String userName;private String remark;private String gender;
而 entity有两个成员变量 ,因为对应数据库表中的两个字段 。
private String userName;private String remark;
这时如果我们要统计女性用户比例多少,可以利用DTO重新封装一层。
首先从页面上拿到 vo,然后判断 vo 中的 gender是不是为0 ,假如0 表示女性。
如果是0,就把 vo 中的 userName和 remark,放到 dto 中。
然后再把 dto 中的 userName和 remark传给 entity,然后根据 entity 的值,再入库到数据库。
Entity实体,和PO的功能类似,和数据表一一对应,一个实体一张表。
个人认为,要是该求职者综合能力不错,而只是不知VO和DTO有什么区别,是可以考虑的,要是你是面试官,你会考虑吗?
-END-
技术交流、媒体合作、品牌宣传,请加小爱微信: iyiyouyou
往期推荐
更多精彩,请扫二维码关注小爱