Java PO、BO、VO、DTO、POJO、DAO,哪个概念最关键?

摘要:DO(Domain Object)领域对象 就是从现实世界中抽象出来的有形或无形的业务实体 PO(bean、entity等命名): Persistant Object持久对象,数据库表中的记录在java对象中的显示状态 BO(service
DO(Domain Object)领域对象 就是从现实世界中抽象出来的有形或无形的业务实体 PO(bean、entity等命名): Persistant Object持久对象,数据库表中的记录在java对象中的显示状态 BO(service、manager、business等命名): Business Object业务对象 主要作用是把业务逻辑封装为一个对象。这个对象可以包括一个或多个其它的对象。 VO(from也有此写法) : Value Object值对象 主要体现在视图的对象,对于一个WEB页面将整个页面的属性封装成一个对象。然后用一个VO对象在控制层与视图层进行传输交换。 DTO (经过处理后的PO,可能增加或者减少PO的属性): Data Transfer Object数据传输对象 主要用于远程调用等需要大量传输对象的地方。 比如我们一张表有100个字段,那么对应的PO就有100个属性。 但是我们界面上只要显示10个字段, 客户端用WEB service来获取数据,没有必要把整个PO对象传递到客户端, 这时我们就可以用只有这10个属性的DTO来传递结果到客户端,这样也不会暴露服务端表结构.到达客户端以后,如果用这个对象来对应界面显示,那此时它的身份就转为VO POJO(POJO是一种概念或者接口,身份及作用随环境变化而变化) : Plain Ordinary Java Object简单Java对象 即POJO是一个简单的普通的Java对象,有一些Private的参数作为对象的属性。然后针对每个参数定义了get和set方法作为访问的接口。它不包含业务逻辑或持久逻辑等,但不是JavaBean、EntityBean等,不具有任何特殊角色和不继承或不实现任何其它Java框架的类或接口。 POJO对象有时也被称为Data对象,大量应用于表现现实中的对象。 一个POJO持久化以后就是PO。 直接用它传递、传递过程中就是DTO 直接用来对应表示层就是VO ---------------------------------- 总结VO和DTO是一种Bean概念,只不过再不同层次时,其称呼不一样,在控制层称呼:DTO,进入视图层:VO PO 持久对象,数据; BO 业务对象,封装对象、复杂对象 ,里面可能包含多个类; DTO 传输对象,前端调用时传输 ; VO 表现对象,前端界面展示。 VO(Value Object) 值对象 通常用于业务层之间的数据传递,和 PO 一样也是仅仅包含数据而已。但应是抽象出的业务对象 , 可以和表对应 , 也可以不 , 这根据业务的需要 。用 new 关键字创建,由 GC 回收的。 VO(View Object)视图对象 用于展示层,它的作用是把某个指定页面(或组件)的所有数据封装起来。 DTO(TO)(Data Transfer Object)数据传输对象 1 .用在需要跨进程或远程传输时,它不应该包含业务逻辑。 2 .比如一张表有100个字段,那么对应的PO就有100个属性(大多数情况下,DTO 内的数据来自多个表)。但view层只需显示10个字段,没有必要把整个PO对象传递到client,这时我们就可以用只有这10个属性的DTO来传输数据到client,这样也不会暴露server端表结构。到达客户端以后,如果用这个对象来对应界面显示,那此时它的身份就转为VO。 DO(Domain Object)领域对象 就是从现实世界中抽象出来的有形或无形的业务实体。 PO(persistant object) 持久对象 1 .有时也被称为Data对象,对应数据库中的entity,可以简单认为一个PO对应数据库中的一条记录。 2 .在hibernate持久化框架中与insert/delet操作密切相关。 3 .PO中不应该包含任何对数据库的操作 POJO(plain ordinary java object) 无规则简单java对象 实际就是普通JavaBeans,使用POJO名称是为了避免和EJB混淆起来, 而且简称比较直接. 其中有一些属性及其getter setter方法的类,有时可以作为value object或dto(Data Transform Object)来使用.当然,如果你有一个简单的运算属性也是可以的,但不允许有业务方法,也不能携带有connection之类的方法。 POJO是Plain Ordinary Java Objects的缩写不错,但是它通指没有使用Entity Beans的普通java对象,可以把POJO作为支持业务逻辑的协助类。
阅读全文