实体类(VO,DO,DTO,PO)的划分
在项目应用中,VO(值对象)对应于页面上需要显示的数据(表单),DO对应于数据库中存储的数据(数据表),DTO对应于除二者之外需要进行传递的数据。
二、领域模型(概念模型)中的实体类
领域模型(概念模型)中的实体类分为四种类型:VO、DTO、DO、PO,各种实体类用于不同业务层次间的交互,并会在层次内实现实体类之间的转化。
Ps:VO实际上很模糊,通常指ValueObject和ViewObject.
VO(view object):界面展现需要的对象,如Struts的FormBean。视图对象,用于展示层,它的作用是把某个指定页面(或组件)的所有数据封装起来。
VO(value object):值对象:用于业务层的数据传递,类似dto对象。VO是用new关键字创建,由GC回收的。VO层用于显示页面数据,PO(persistant object)用于数据持久化存储。值对象:在多数情况下不需要保存;
PO(persistant object)持久对象:
在o/r映射的时候出现的概念,如果没有o/r映射,没有这个概念存在了。通常对应数据模型(数据库),本身还有部分业务逻辑的处理。可以看成是与数据库中的表相映射的java对象。最简单的PO就是对应数据库中某个表中的一条记录,多个记录可以用PO的集合。PO中应该不包含任何对数据库的操作。(当需要满足Java对象得到持久化(即保存)的需求)
DO(Domain Object):领域对象,就是从现实世界中抽象出来的有形或无形的业务实体。
DTO(Data Transfer Object):数据传输对象,这个概念来源于J2EE的设计模式,原来的目的是为了EJB的分布式应用提供粗粒度的数据实体,以减少分布式调用的次数,从而提高分布式调用的性能和降低网络负载,但在这里,我泛指用于展示层与服务层之间的数据传输对象。
Ps:orm模式bjcet/Relation Mapping)
ORM是什么?
who:首先ORM可以立即为(Object/Relation Mapping): 对象/关系映射
what:其次ORM可以得到持久化对象
when:当需要满足Java对象得到持久化(即保存)的需求
how:因为ORM会将关系数据库中表中的记录映射成为对象,以对象的形式展现,程序员可以把对数据库的操作转化为对对象的操作。因此ORM的目的是为了方便开发人员以面向对象的思想来实现对数据库的操作。
ORM作为是一种思想,帮助我们开发人员跟踪实体的变化,并将实体的变化翻译成sql脚本,执行到数据库中去,也就是将实体的变化映射到了表的变化。