Java 开发中的各种 O
POJO
Plain Ordinary Java Object
简单Java对象,就是一个我们最常见的普通Java对象。它具有一些属性,然后提供对应的getter和setter。
JavaBean
可序列化的POJO。它需要实现序列化接口java.io.Serializable
。
DO
Domain Object [ DDD(领域驱动设计) ]
领域对象,也就是ORM框架中对应数据库的对象,业务实体。例如,对现实世界中的用户建模,抽象出来的DO可以叫为UserDO,通常情况下它用于与数据库的数据交互,通常也是一个JavaBean。
PO
Persistent Object
持久化对象,主要用于持久化层,与数据库对应,通常也是ORM框架中的实体对象,例如,使用JPA时候的Entity与数据库表做映射,通常是一个JavaBean。
DO 和 PO 大部分时间是一样的,不过PO更倾向于有状态的对象。
DTO
Data Transfer Object
数据传输对象, 顾名思义就是用于传输数据的对象,通常用于处于不同架构层次或者不同子系统之间的数据传递,或者用于外部接口参数传递,以便提供不同粒度不同信息的数据,以免造成困惑干扰,通常也是一个JavaBean。Service 或 Manager 向外传输的对象。
VO
Value Object/View Object
就是用于保存数据的对象;在提供给页面使用的时候,也有人解释为View Object,就是对应页面展示数据的对象。显示层对象,通常是 Web 向模板渲染引擎层传输的对象。
VO 里的每一个字段,是和你前台 html 页面相对应。
Query
xxQuery
数据查询对象,各层接收上层的查询请求。
其他
- BO( Business Object): 业务对象, 由 Service 层输出的封装业务逻辑的对象。
- AO( Application Object): 应用对象, 在 Web 层与 Service 层之间抽象的复用对象模型,极为贴近展示层,复用度不高。