项目分层开发中,DTO、BO、PO、VO的含义

简介: java springBoot项目

在后端开发中,比如传统的MVC架构和现在流行的DDD架构,经常回使用到几种对象的概念

DTO (Data Transfer Object) 数据传输对象: DTO设计模式用于将数据从服务端传输到客户端,或者在不同的服务之间传递。通常,DTO包含了特定业务场景需要的数据结构,并且不包含任何业务逻辑。它简化了不同服务或模块之间的交互,使得各个层之间的耦合度降低。

BO (Business Object) 业务对象: BO代表了业务逻辑层中的对象,封装了与某个业务相关的数据以及针对这些数据的操作逻辑。一个BO可能由多个实体属性组成,并处理涉及多个实体的复杂业务逻辑。

PO (Persistent Object) 持久化对象: PO主要用来表示数据库表的一条记录,它的属性和数据库表的字段相对应。通常在持久层(如Hibernate、JPA等ORM框架)中使用,主要用于操作数据库,如保存、更新和查询数据。

VO (Value Object) 值对象: VO是视图层的对象,通常用于封装展示给用户的数据,它可以和数据库表对应,也可以根据UI界面需求进行定制。VO的主要目的是在页面展示时只携带必要的数据,从而避免把大量不必要的数据暴露给前端。

这个是PO类

@Data
public class User implements Serializable{
private Long id;

private String username;

private String password;

private String identityCard;

private String gender;

private String location;

private String userImage;

private String phoneNumber;

private String createTime;

private String updateTime;

@TableLogic
private int isDelete;

}

UserDTO类

@Data
public class UserDTO implements Serializable{
private Long id;

private String username;

private String password;

private String identityCard;

private String gender;

private String location;

private String userImage;

private String phoneNumber;

}

UserLoginBO、UserUpdateBO

@Data
public class UserLoginBO implements Serializable{
private String username;

private String password;

}

@Data
public class UserUpdateBO implements Serializable{
private Long id;

private String username;

private String password;

private String identityCard;

private String gender;

private String location;

private String userImage;

private String phoneNumber;

}

UserDTO是一个大的入口,它可以接收整个模块的参数

BO则是在进入Service层之前对UserDTO的数据进行过滤,并且对边界进行控制

最后在进入infra层之前转为PO

其实BO也可以像UserDTO那样,直接一个UserBO包含UserLoginBO和UserUpdateBO,单纯的做模型转换,不做值过滤也可以

在后端开发中是这么使用的

目录
相关文章
|
5月前
|
开发者
第十三期乘风伯乐奖--寻找百位乘风者伯乐,邀请新博主入驻即可获奖
乘风伯乐奖,面向阿里云开发者社区已入驻乘风者计划的博主(技术/星级/专家),邀请用户入驻乘风者计划即可获得乘风者定制周边等实物奖励。本期面向阿里云开发者社区寻找100位乘风伯乐,邀请人数月度TOP 1 获奖者(大于108人)可获得Cherry樱桃MX 3.0S键盘!
3370 15
|
8天前
|
监控 Java 微服务
spring 熔断机制
spring 熔断机制
23 0
|
1天前
|
数据可视化 搜索推荐 项目管理
有没有好用的待办事项清单软件? —— 一文带你了解
在快节奏的现代生活中,待办事项清单成为提高效率、管理时间的重要工具。它不仅帮助记录任务,还能清晰规划时间和精力,确保重要事项优先处理。本文介绍了待办事项清单的应用场景及四款推荐软件:板栗看板、Todoist、Wunderlist 和 Trello,并分析了它们的优缺点,帮助用户选择合适的工具。
有没有好用的待办事项清单软件? —— 一文带你了解
|
1天前
|
Windows
安装 Windows Server 2003
安装 Windows Server 2003
|
1天前
|
设计模式 前端开发 JavaScript
深入探索研究MVVM架构设计
【10月更文挑战第7天】
7 0
|
1天前
|
缓存 JSON 关系型数据库
四、Flask 视图使用方法详细概述
四、Flask 视图使用方法详细概述
4 0
|
8天前
|
Java 测试技术 Maven
maven 打包命令
maven 打包命令
16 6
|
8天前
|
存储 监控 NoSQL
redis 相关知识
redis 相关知识
17 1
|
8天前
|
负载均衡 网络协议 Java
浅谈Springboot与Springcloud的区别
浅谈Springboot与Springcloud的区别
20 1
|
8天前
|
小程序
移动医保支付
移动医保支付
14 0