我们在刚做项目的时候可能会不理解VO、PO、DO、DTO的含义,就导致再写业务的时候胡乱建一些类,放进这些包下面。接下来呢,就挑几个常用的给大家介绍一下,方便小伙伴们知道什么时候应该建什么类,把它们放在哪里。
VO(View Object):视图对象,就是后端查完数据库后,进行业务逻辑处理,把前端想要的数据封装成VO对象,再返给前端展示。
PO(Persistence Object):持久化对象,主要是用于将数据库表与Java对象进行映射,表中字段与Java对象中属性是一一对应的关系。
DO(Domain Object):领域对象,是对现实世界中业务角色的抽象,它不仅包含数据,还可能包含领域业务逻辑。简单来说就是:DO是从数据库中获取的数据再加上业务处理后的对象。
DTO(Data Transfer Object):数据传输对象,通常用于在不同层进行数据传递,例如,前端发出一个请求,通过DTO中封装一些数据传给后端。
PO与DO的区别:
- PO :主要用于数据的持久化层,与数据库表结构直接对应,方便数据的存储和检索。
- DO: 更多地涉及到业务逻辑层,它不仅包含数据,还可能包含用于业务处理的逻辑和方法,因此更加适合于业务处理和操作。
DO与PO在绝大部分情况下是一一对应的,但某些场景下,DO不需要进行显式的持久化,例如,某些策略模式设计的对象可能只有逻辑实现,而没有对应的数据库表结构。