Java术语普及篇
简单目录
- DAO(data access object) 数据访问对象
- DTO(data transfer object) 数据传输对象
- PO(persistant object) 持久层对象
- BO(business object)业务层对象
- VO(value object)值对象
- POJO(plain ordiary java object)简单Java对象
- QO(Query object)查询对象
总体一览表
术语解释
- DAO(Data access object)数据访问对象
是标准的J2EE设计模式,这个模式把底层的数据访问操作和业务逻辑分开,用户访问数据库。通常和PO结合使用,DAO中包含了各种数据库的操作方法。结合PO对数据库进行相关的操作。夹在业务逻辑与数据库资源中间。配合VO,提供数据库的CRUD操作。对数据访问不仅仅指的是对数据库的访问。假如A系统调用B系统的服务获取数据,这时候A系统对B系统访问数据对象的封装也可以称为DAO。 - DTO(Data transfer object)数据传输对象
假设我们一张表有20个字段,PO就有20个属性,页面展示用到5个,客户端用web service来获取数据,没有必要把PO传过去,这时就诞生DTO传递5个属性,这样就不会暴漏表结构,如果用这个对象来对应界面显示,它的身份就转为VO。 - PO(persistant object)持久对象
在o/r映射的时候出现概念,如果没有o/r映射,就没有这个概念了。PO属性和数据库中的字段一一对应,数据库中的一条数据可以理解为一个持久对象。 - BO(business object) 业务对象
业务对象顾名思义是在业务处理中抽象出来的对象,里面除了get/set 方法外,也可以有对字段进行业务处理的方法。通过调用 DAO 方法 , 结合 PO,VO 进行业务操作。 主要作用是把业务逻辑封装为一个对象。这个对象可以包括一个或多个其它的对象。 比如一个简历,有教育经历、工作经历、社会关系等等。 我们可以把教育经历对应一个 PO ,工作经历对应一个 PO ,社会关系对应一个 PO 。 建立一个对应简历的 BO 对象处理简历,每个 BO 包含这些 PO 。 这样处理业务逻辑时,我们就可以针对 BO 去处理。 - VO(value object) 值对象
值对象也可以称做页面对象,如果称做页面对象,那门它所代表的将是整个页面展示层的对象。通常用于业务层之间的数据传递,用 new 关键字创建,由 GC 回收的,和 PO 一样也是仅仅包含数据而已。但应是抽象出的业务对象 , 可以和表对应 , 也可以不 , 这根据业务的需要 . 个人觉得同 DTO( 数据传输对象 )一样 在 web 上传递。 - POJO(plain ordiary java object)简单Java对象
若一些bean类觉得简单,或者仅仅作为中间件,那么可以归类于pojo。如果从数据库到页面展示都是POJO的话,它可以是DTO。如果从数据库中到业务处理中都是POJO的话,他也可以是BO。同样如果从数据库到整个页面的展示的话,它同样可以是VO。 - QO(Query object) 查询对象
一般用于组装查询参数