转载自博客:Java中常见的对象类型简述(DO、BO、DTO、VO、AO、PO)
一、概念
DAO(Data access object)-数据访问对象
主要用来封装对数据库的访问。通过它可以把POJO持久化为PO,用PO组装出来VO、DTO。
POJO(Plain ordinary java object)-简单java对象
POJO持久化以后就是PO,直接用它传递,传递过程中就是DTO,直接用来对应表示层就是VO。
PO(Persistant Object)-持久对象
可以理解是一个PO就是数据库中的一条记录映射成的java对象,仅仅用于表示数据,没有任何数据操作。方便转化为其他对象。
DTO(Data Transfer Object)-数据传输对象
比如一张表有100个字段,那么对应的PO就有100个属性。但是界面上只要显示10个字段,客户端获取数据时没必要把整个PO对象传递到客户端,这时就可以用只有这10个属性的DTO来传递结果到客户端,这样也不会暴露服务端表结构。
到达客户端以后,如果用这个对象来对应界面显示,那此时DTO就转为VO。
BO(Business Object)-业务对象
主要作用是把业务逻辑封装为一个(复杂)对象,可以包括多个其它的对象/类。
比如一个简历,有教育经历、工作经历、社会关系等等。可以把教育经历对应一个PO,工作经历对应一个PO,社会关系对应一个PO。建立一个对应简历的BO对象处理简历,每个BO包含这些PO。这样处理业务逻辑时,我们就可以针对BO去处理。
VO(Value Object)-表现对象
主要对应界面显示的数据对象。只包含前端需要展示的数据即可,对于前端不需要的数据,比如数据创建和修改的时间等字段,出于减少传输数据量大小和保护数据库结构不外泄的目的,不应该在 VO 中体现出来。