JavaWeb中DTO,VO,PO等领域模型的个人理解

概念

PO(Persistent Object)

持久化对象,它跟持久层(通常是关系型数据库)的数据结构形成一一对应的映射关系。

DTO(Data Transfer Object)

数据传输对象,是一种设计模式之间传输数据的软件应用系统。

数据传输目标往往是数据访问对象从数据库中检索数据。

方便数据交互,在这里泛指用于展示层与服务层之间的数据传输对象

VO(Value Object)

VO是显示视图模型,视图对象,用于展示层,它的作用是把某个指定页面(或组件)的所有数据封装起来。

 

DTO与VO的区别

个人理解:

概念上两者有着本质的区别,DTO 代表服务层需要接收的数据和返回的数据,而 VO 代表展示层需要显示的数据。

既然DTO是展示层与服务层之间传递数据的对象,为什么还需要一个VO呢?

在只有一个客户端的情况下DTO=VO,DTO和VO的属性值基本是一致的,因此没必要多此一举。

但是在有两个客户端的情况下,比如说客户端A把性别男显示为男生,客户端B把性别男显示为帅哥(客户定制化需求),此时需要两个VO(这是设计层面上的思维,实现层面你可能认为不需要两个VO),如果一个DTO对应多个VO,则展示层需要把VO转换为服务层对应方法所要求的DTO,传送给服务层。从而达到服务层与展示层解耦的效果。

上一篇:select2,利用ajax高效查询大数据列表(可搜索、可分页)


下一篇:抖音api接口,同步抖音粉丝列表