1、概念:
VO(View Object):视图对象,用于页面展示层,它的作用是把某个指定页面(或组件)的数据封装起来,传输到前端页面上。
DTO(Data Transfer Object):数据传输对象,主要用于展示层与服务层之间的数据传输。
DO(Domain Object):领域对象(或称实体对象),就是从现实世界中抽象出来的有形或无形的业务实体。
POJO(Plain Ordinary Java Object):简单的Java对象,实际就是普通JavaBeans,是为了避免和EJB混淆所创造的简称,它不包含业务逻辑或持久逻辑等。POJO对象有时也被称为Data对象,大量应用于表现现实中的对象。一个POJO持久化以后就是PO。
2、区别:
这几个概念所应用的场景不同,在三层架构中各自的位置有所不同:
- 前端发起请求或提交表单,请求中或表单里的数据传输到后端,在展示层被匹配为VO。
- 展示层把VO转换为服务层对应方法所需要的DTO,传送给服务层。
- 服务层根据DTO的数据构造或重建一个DO,然后再调用DO的业务方法来完成具体的业务。
- 然后服务层再把DO转换为持久层对应的PO,调用持久层的持久化方法,把PO传递给它,完成持久化操作。