deepwzh的技术笔记
  • Golang
  • Python
  • Cpp
杂项
前端开发
  • 计算机网络
  • 操作系统
  • 数据库
云原生
Devops
AIGC
关于作者
  • Golang
  • Python
  • Cpp
杂项
前端开发
  • 计算机网络
  • 操作系统
  • 数据库
云原生
Devops
AIGC
关于作者
  • 杂项
  • Windows UI 自动化方案调研 (2026)v2
  • Nginx
  • 首页
  • Protobuf
  • 学习资料
  • 杂项
  • Ldap
  • 编译原理
  • 分布式

    • 分布式
    • Raft 算法
  • 开发工具

    • 开发工具
    • cloc
    • Vscode
    • 工具箱
    • Visual Studio

      • Visual Studio
      • C++ 相关
      • Visual Studio 基本知识
  • 软件设计

    • 软件设计
    • MVC
    • 领域驱动设计
    • PO、DO、DTO、VO
    • 高内聚低耦合
  • 消息队列

    • 消息队列
    • Celery
    • Kafka
    • RabbitMQ
  • 设计模式

    • 设计模式
    • 控制反转和依赖注入
    • 七大原则
  • 网络安全

    • 网络安全
    • 请求签名
    • CSRF
    • XSS
  • 版本管理工具

    • 版本管理工具
    • Git

      • Git
      • Git get 私有仓库报错
      • Github 加速
      • Clone
      • Git pull 出现 hint 时的解决方案
      • 修改提交记录的作者信息
      • Git mergr
  • 组成原理

    • 组成原理
    • CPU

PO、DO、DTO、VO

DTO(Data Transfer Object)

数据传输对象,原先是为分布式提供粗粒度的数据实体,减少调用次数来提升性能和降低网络压力。

VO(view object)

可视层对象,用于给前端显示的对象。(只传递有需要的参数以保障数据安全)

DO(Domain Object):

领域对象,一般和数据中的表结构对应。

PO(Persistent Object):持久化对象,是一种 o/r 映射关系,可以看成是数据库表到 java 对象的映射。

概括

DTO:前端给后端传递的数据

VO:后端给前端传递的数据

DO:数据库表结构

PO:数据库表结构到 JAVA 的映射类

一般我们使用 Mybatis 建的类为 PO,控制器接受到前端发来的参数为 DTO,给前端发送的安全的数据为 VO。如果数据类不做映射处理关系时 PO=DO

Prev
领域驱动设计
Next
高内聚低耦合