PO VO POJO DTO分析

POJO

Plain Ordinary Java Object 简单无规则java对象
首先POJO即为简单的普通的Java对象,无任何业务逻辑和持久逻辑,但不是JavaBean、EntityBean等,是为了避免和EJB混淆所创造的简称, 不具有任何特殊角色和不继承或不实现任何其它Java框架的类或接口。有时可以作为VO(value -object)或DTO(Data Transform Object)来使用.当然,如果你有一个简单的运算属性也是可以的,但不允许有业务方法,也不能携带有connection之类的方法 。
如图:

PO VO POJO DTO分析_第1张图片
POJO分析图.png

VO

value object:值对象
主要体现在视图的对象,对于一个WEB页面将整个页面的属性封装成一个对象。然后用一个VO对象在控制层与视图层进行传输交换。

PO

persistant object:持久层对象
是ORM(Objevt Relational Mapping)框架中Entity,PO属性和数据库中表的字段形成一一对应关系 。VO和PO,都是属性加上属性的get和set方法;表面看没什么不同,但代表的含义是完全不同的,PO就是数据库中的一条记录。 好处是可以把一条记录作为一个对象处理,可以方便的转为其它对象。

DTO

data Transfer object: 数据传输对象

主要用于远程调用等需要大量传输对象的地方。
比如我们一张表有100个字段,那么对应的PO就有100个属性。
但是我们界面上只要显示10个字段,客户端用WEB service来获取数据,没有必要把整个PO对象传递到客户端,这时我们就可以用只有这10个属性的DTO来传递结果到客户端,这样也不会暴露服务端表结构.到达客户端以后,如果用这个对象来对应界面显示,那此时它的身份就转为VO。

DAO

data access object:数据访问对象
是sun的一个标准j2ee设计模式,这个模式中有个接口就是DAO,负责持久层的操作主要用来封装对数据的访问。注意,是对数据的访问,不是对数据库的访问 。通过它可以把POJO持久化为PO,用PO组装出来VO、DTO。

PO VO POJO DTO分析_第2张图片
DAO数据持久层.png

你可能感兴趣的:(PO VO POJO DTO分析)