POJO(Plain Ordinary Java Object)
有一些 private 的参数作为对象的属性,并且有参数的 getter 或 setter 方法。
没有从任何类继承,也没有实现任何接口,更没有被任何框架入侵的 Java 对象。
可以转化为PO、DTO、VO;比如POJO在传输过程中就是DTO。
public class User {
private String name;
private int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
VO (Value Object)
值对象,用于业务层之间的数据传递,由new创建,由GC回收。(具体怎么传递?)
PO (Persistent Object)
持久层对象,对应数据库表中的字段。VO和PO,都是属性加上属性的get和set方法;表面看没什么不同,但代表的含义是完全不同的。
DTO (Data Transfer Object)
数据传输对象,用于提高数据传输(减少传输不必要的字段),隐藏服务器数据库表结构。
表里面有十几个字段:id,name,gender(M/F),age,conmpanyId(如001)…
页面需要展示四个字段:name,gender(男/女),age,conmpanyName
DTO由此产生,一是能提高数据传输的速度(减少了传输字段),二能隐藏后端表结构。
BO (Business Object)
业务对象,POJO 在业务层的体现,把业务逻辑封装为一个对象,例如需要一个人的信息需要从不同的分表中取出这个人的电话,地址等信息(PO),然后组装成业务对象(BO)。
DAO (Data Access Objects)
对数据库进行crud的数据访问对象。
JavaBean
必须有一个默认的无参构造
必须实现Serializable接口
属性必须是私有
可以看成是特殊的POJO
public class UserInfo implements java.io.Serializable{
//实现serializable接口。
private static final long serialVersionUID = 1L;
private String name;
private int age;
//无参构造器
public UserInfo() {
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
//javabean当中可以有其它的方法
public void userInfoPrint(){
System.out.println("");
}
}
EJB (Enterprise JavaBean)
一组 JavaBean 的集合。这个对象集合满足了企业的某个业务逻辑。