文章目录
  1. 1. PO
  2. 2. BO
  3. 3. VO
  4. 4. DTO
  5. 5. POJO
  6. 6. JavaBean
  7. 7. DAO
  8. 8. EJB
  9. 9. 关系
  10. 10. 利弊

最近在做push-web项目时,里面使用了dto,vo等概念,想当初做软工使用分层架构的时候也是有区分,所以这里久简单理清这些术语的概念和互相之间的联系。

PO

persistant object持久对象.

最形象的理解就是一个PO就是数据库中的一条记录。好处是可以把一条记录作为一个对象处理,可以方便的转为其它对象。

BO

business object业务对象.

主要作用是把业务逻辑封装为一个对象。这个对象可以包括一个或多个其它的对象。比如一个简历,有教育经历、工作经历、社会关系等等。
我们可以把教育经历对应一个PO,工作经历对应一个PO,社会关系对应一个PO。建立一个对应简历的BO对象处理简历,每个BO包含这些PO。
这样处理业务逻辑时,我们就可以针对BO去处理。

VO

value object值对象 / ViewObject表现层对象.

主要对应界面显示的数据对象。对于一个WEB页面,或者SWT、SWING的一个界面,用一个VO对象对应整个界面的值。

DTO

Data Transfer Object数据传输对象.

主要用于远程调用等需要大量传输对象的地方。

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

POJO

plain ordinary java object 简单java对象.

POJO是最常见最多变的对象,是一个中间对象,也是我们最常打交道的对象。

一个POJO持久化以后就是PO,直接用它传递、传递过程中就是DTO,直接用来对应表示层就是VO.

JavaBean

是一种JAVA语言写成的可重用组件。它的方法命名,构造及行为必须符合特定的约定:

  1. 这个类必须有一个公共的缺省构造函数。
  2. 这个类的属性使用getter和setter来访问,其他方法遵从标准命名规范
  3. 这个类应是可序列化的。

简而言之,当一个POJO可序列化,有一个无参的构造函数,使用getter和setter方法来访问属性时,它就是一个JavaBean。

DAO

data access object数据访问对象.

DAO一般有接口和该接口的实现类,接口用于规范实现类。实现类一般用于操作数据库,如对数据库进行修改、添加、删除等操作,一般直接调用公共类DAO。

EJB

Enterprise JavaBean.

它是一组”功能”JavaBean的集合。上面说了JavaBean是实现了一种规范的Java对象。这里说EJB是一组JavaBean的意思是这一组JavaBean组合起来实现了某个企业组的业务逻辑。这里的一组JavaBean不是乱组合的,它们要满足能实现某项业务功能的搭配。找个比方,对于一身穿着来说,包括一顶帽子,一件衣服,一条裤子,两只鞋。这穿着就是EJB,其它的就是一个JavaBean.

关系

利弊

解耦各个层次,增加灵活性和可扩展性;但同时不同的对象之间的互相转换增加了工作量。

文章目录
  1. 1. PO
  2. 2. BO
  3. 3. VO
  4. 4. DTO
  5. 5. POJO
  6. 6. JavaBean
  7. 7. DAO
  8. 8. EJB
  9. 9. 关系
  10. 10. 利弊