java几种对象的区别(PO,POJO,VO,BO,DAO)

  1. PO(persistant object 持久对象) :与数据库中的表相映射的java对象,每个属性基本都对应数据库表里面某个字段;
    可以理解为一个PO就是数据库中的一条记录,一条记录即为一个对象。
  2. POJO(plain old java object 简单的java对象)
    就是普通JavaBeans,为了避免和EJB混淆所创造的简称,通常指没有使用Entity Beans的普通java对象,可以把POJO作为支持业务逻辑的协助类;
    一个POJO持久化以后就是PO,直接用它传递、传递过程中就是DTO,直接用来对应表示层就是VO。
  3. VO(value object值对象或者view object表现层对象)
    value object值对象:通常用于业务层之间的数据传递,和PO一样也是仅仅包含数据而已。但应是抽象出的业务对象,可以和表对应,也可以不,根据业务的需要;
    view object表现层对象:主要对应展示界面显示的数据对象,用一个VO对象来封装整个界面展示所需要的对象数据;
  4. BO(business object业务对象)
    封装业务逻辑的java对象,通过调用DAO方法,结合PO,VO进行业务操作;
    主要作用是把业务逻辑封装为一个对象。这个对象可以包括一个或多个其它的对象。
    比如一个简历,有教育经历、工作经历、 关系等等。
    我们可以把教育经历对应一个PO,工作经历对应一个PO, 关系对应一个PO。
    建立一个对应简历的BO对象处理简历,每个BO包含这些PO。
    这样处理业务逻辑时,我们就可以针对BO去处理
  5. DAO(data access object 数据访问对象) :主要用来封装对数据库的访问。通常和PO结合使用,DAO中包含了各种数据库的操作方法。通过它的方法,结合PO对数据库进行相关的操作,通过它可以把POJO持久化为PO,用PO组装出来VO、DTO;
    DAO模式是标准的J2EE设计模式之一,开发人员使用这个模式把底层的数据访问操作和上层的商务逻辑分开。一个典型的DAO实现有下列几个组件:
    一个DAO工厂类;
    一个DAO接口;
    一个实现DAO接口的具体类;
    数据传递对象(有些时候叫做值对象)。
    具体的DAO类包含了从特定的数据源访问数据的逻辑,一般来说,一个DAO类和一张表对应,每个操作要和事务关联。
  6. DTO(data transfer object 数据传输对象) :放入到DAO中,一般起到过渡的作用;
    主要用于远程调用等需要大量传输对象的地方。
    比如我们一张表有100个字段,那么对应的PO就有100个属性。
    但是我们界面上只要显示10个字段,
    客户端用WEB service来获取数据,没有必要把整个PO对象传递到客户端,
    这时我们就可以用只有这10个属性的DTO来传递结果到客户端,这样也不会暴露服务端表结构.到达客户端以后,如果用这个对象来对应界面显示,那此时它的身份就转为VO
  7. JavaBean :一种可重用组件,即“一次性编写,任何地方执行,任何地方重用”;
    它满足三个条件:①类必须是具体的和公共的;②具有无参构造器;③提供一致性设计模式的公共方法,从而暴露内部成员属性。
    主要用途:可以用在功能、处理、值、数据库访问和JSP中任何可以用Java代码创造的对象。
    JavaBean有两种:一种是有用户界面(UI,User Interface)的JavaBean;还有一种是没有用户界面,主要负责处理事务(如数据运算,操纵数据库)的JavaBean。JSP通常访问的是后一种JavaBe。
  8. JavaBeans :JavaBeans;
    从狭义来说,指的是 JavaBeans 规范,也就是位于 java.beans 包中的一组 API;从广义上来说,JavaBeans 指的是 API 集合,比如 Enterprise JavaBeans。

你可能感兴趣的:(Java基础)