PO、VO、BO、DTO、DAO、POJO


1.1 PO

它的含义是Persistent Object,即持久化对象。


DAO

它的含义是Data Access Object


BO

它的含义是Business Object,即业务对象。

  • 职责封装核心业务逻辑,聚合多个PO完成复杂操作


DTO

它的含义是Data Transfer Object,即数据传输对象。

  • 职责跨层/跨服务数据传输,屏蔽敏感字段
  • 特征
    • 属性集是PO的子集(如排除password字段)
    • 支持序列化(实现Serializable
  • 代码示例:用户信息DTO


VO

它的含义是View Object,即视图对象。

  • 职责适配前端展示,包含渲染逻辑
  • 特征
    • 属性可包含格式化数据(如日期转yyyy-MM-dd
    • 聚合多表数据(如订单VO包含用户名字)


POJO

它的含义是Plain Old Java Object,即普通Java对象。

  • 职责基础数据容器,可扮演PO/DTO/VO角色
  • 特征
    • 只有属性+getter/setter
    • 无框架依赖(如不继承Spring类)
  • 典型实现:Lombok简化代码



传统三层架构(DAO → DTO → VO)


PO - DTO - VO