PO(Persistant Object 持久对象)/Entity
- PO就是与数据库结构映射的实体,即PO的属性是跟数据库表的字段一一对应的
- 在hibernate持久化框架中与insert/delet操作密切相关
VO(Value Object 值对象/ View Object 表现层对象)
- 主要对应页面显示的数据对象
- 一般继承PO,可以添加PO中没有的字段,用来逻辑处理以及其他消息的存储
BO(Business Object 业务对象)
- 封装业务逻辑的java对象,通过调用DAO方法,结合PO,VO进行业务操作
DTO(Data Transfer Object数据传输对象)
- 主要用于远程调用等需要大量传输对象的地方
比如一张表有100个字段,那么对应的PO就有100个属性(大多数情况下,DTO 内的数据来自多个表)。但view层只需显示10个字段,没有必要把整个PO对象传递到client,这时我们就可以用只有这10个属性的DTO来传输数据到client,这样也不会暴露server端表结构。到达客户端以后,如果用这个对象来对应界面显示,那此时它的身份就转为VO。
POJO(Plain Ordinary Java Object 简单无规则java对象)
- PO VO应该都属于POJO
- 实际就是普通JavaBeans,使用POJO名称是为了避免和EJB混淆起来
DAO(Data Access Object数据访问对象)
- 主要用来封装对DB的CRUD操作
- 通过DAO可以把POJO持久化为PO,用PO组装出来VO、DTO
JavaBean
JavaBean是一种JAVA语言写成的可重用组件。它的方法命名,构造及行为必须符合特定的约定:
1、这个类必须有一个公共的缺省构造函数。
2、这个类的属性使用getter和setter来访问,其他方法遵从标准命名规范。
3、这个类应是可序列化的。
因为这些要求主要是靠约定而不是靠实现接口,所以许多开发者把JavaBean看作遵从特定命名约定的POJO。
简而言之,当一个Pojo可序列化,有一个无参的构造函数,使用getter和setter方法来访问属性时,他就是一个JavaBean
网友评论