实体类

  • DO(Domain Object): 领域对象,就是从现实世界中抽象出来的有形或无形的业务实体,对应数据库中存储的数据,具有唯一性
  • VO(View Object):显示对象,对应页面需要显示的数据
  • DTO(Data Transfer Object): 数据传输对象,对应出了DO和VO之外进行传递的数据
  • PO(Persistent Object):持久化对象,它跟持久层(通常是关系型数据库)的数据结构形成一一对应的映射关系,如果持久层是关系型数据库,那么数据表中的每个字段(或若干个)就对应PO的一个(或若干个)属性。
  • VO(Value Object):值对象,是属性的集合,没有唯一标识,只是数据的容器,没有业务逻辑。值对象是实体的一部分,为了简化设计,将部分相关属性抽离成值对象
  • BO(Business Object):业务对象,封装业务逻辑的Java对象,通过调用DAO方法,结合PO,VO进行业务操作
  • DAO(data access object):数据访问对象,为业务提供接口,用于访问数据库,包含了各种数据库的操作方法,结合PO对数据库进行相关操作,夹在业务逻辑和数据库资源中间。

业务分层

  • 视图层(View+Action)
  • 服务层(Service)
  • 持久层(DAO)

相应各层间实体的传递如下图

image.png

业务处理流程

  1. 用户发出请求(可能是填写表单),表单的数据在展示层被匹配为VO
  2. 展示层把VO转换为服务层对应方法所要求的的DTO,传递给服务层
  3. 服务层首先根据DTO的数据构造(或者重建)一个DO,调用DO的业务方法完成具体的业务
  4. 服务层把DO转换为持久层对应的PO,调用持久层的持久方法,把PO传递给她,完成持久化操作
  5. 对于一个逆向操作,如读取数据,也是用类似的方式转换和传递