个人在平时学习的时候
如果碰到一对一或者一对多的表关系
在创建实体类的时候都会直接套用其他实体类
例如:一个班级有一个Teacher和多个学生
CSDN不让用中文 用英文
班级
//班级类
public class schoolClass{
private String className;
private Teacher teacher;
private List<Student> students;
}
学生
public class Student{
private String name;
private int age;
private String sex;
}
Teacher
public class Teacher{
private String name;
private int age;
private String money;
}
但是工作后发现公司中的实体类都是单纯的属性
例:
班级
//班级类
public class schoolClass{
private String pkClassId;
private String fkTeacherId
private String className;
}
学生
public class Student{
private String studentId;
private String fkClassId;
private String name;
private int age;
private String sex;
}
**Teacher**
```java
public class Teacher{
private String pkTeacherId;
private String fkClassId;
private String name;
private int age;
private String money;
}
虽然实现功能上都是一样的,但是如果想获取多个属性的话就需要创建一个VO来封装对象,希望有人给解释一下
对象的概念就是这样的。你不能把业务和对象混合在一起。vo可以理解为一个中间桥梁,符合开发的规范性。
VO:值对象(Value Object),通常用于业务层之间的数据传递,和Entity一样也是仅仅包含数据而已。但应是抽象出的业务对象,可以和表对应,也可以不,这根据业务的需要。
VO:表现层对象(View Object),主要对应展示界面显示的数据对象,用一个VO对象来封装整个界面展示所需要的对象数据。
一般是数据库一张表对应一个实体类,需要别的属性,就像你说的一样,在创建一个实体类来封装。
你是想问这样做的好处吗?个人见解:
VO可以理解为数据传输对象
用于表现层和应用层之间的数据交互简单来说Model面向业务,我们是通过业务来定义Model的。而VO是面向界面UI,是通过UI的需求来定义的。 通过VO我们实现了表现层与Model之间的解耦,表现层不引用Model