实体类
- 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)
相应各层间实体的传递如下图

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