1、POJO(Plain Old Java Object)
“Plain Old Java Object”的意思是“纯朴旧式的java对象”,现在大家也称它作“简单的java对象”。何为纯朴旧式?在该对象中只有private属性的参数以及根据每个参数定义的get和set方法,没有其它的方法、没有类的继承、接口的实现等,更没有被其它框架侵入的java对象。
public class Student {
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;
}
}
2、JavaBean
JavaBean是符合一定规范而编写的Java类,通常意义上开发者会把JavaBean看成是遵循特定约定的POJO+其它方法。显而易见的,POJO作为纯朴旧式的对象只能作为数据载体,而JavaBean具有业务逻辑处理能力。
通常的约定包括:
- 所有参数的属性为private;
- //类中包含一个公共的无参沟通器;
- 类实现serializable接口,可序列化……
public class StudentWork implements java.io.Serializable{
//实现serializable接口。
private static final long serialVersionUID = 1L;
private String name;
private int age;
//无参构造器
public StudentWork() {
}
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 studentWork(){
System.out.println("studentWork");
}
}
3、DAO(data access object)
说到这里,就不得不简单地提一下DAO——数据访问对象,以及与其相关联的PO、DTO、VO、BO等。我们通常说的DAO层就是由这些DAO组成的。DAO一般都有接口和该接口的实现类,接口用于规范实现类,同时与底层数据库技术解耦。实现类一般用于数据库的增删查改CURD操作。
PO(persistent object)持久化对象、DTO(data transfer objoct)数据交换对象、VO(view object)显示对象、BO(business object)业务对象等,我们通常将POJO持久化为PO,然后用PO组装不同的DTO和VO,用于数据的交换和展示。如我们的学生表有30个字段,那么通过ORM出来的Entity对象就会有30个属性,而我们的页面只需要显示10个关键的值。这个时候为了防止暴露底层的表结构,我们通过10个属性的DTO来传递值,到达界面再转化成VO展示。另外一种情况是,对于业务场景来说,这10个关键值有可能来自几张不同的表,比如成绩表、班级表等等,这时候我们BO则会将这些表的PO拼装起来成为业务场景下的一个完整对象。
4、EJB(Enterprise JavaBean)
EJB又称企业级JavaBean,顾名思义,对比起普通的JavaBean和POJO,EJB可以说是在业务或者应用系统下的一项功能,这项功能是JavaBean的集合。换句话说,满足某项业务功能的JavaBean搭配。
(PS:这里所说的EJB是指与POJO和JavaBean对比的一个对象概念,实际上EJB所包含的内容十分广泛,将另开文章讨论。)