对PO、VO、DAO、BO、POJO、DTO等对象的解释

AO

Application Object 应用对象
  • 在Web层与Service层之间抽象的复用对象模型,极为贴近展示层,复用度不高。

BO

Business Object 业务对象
  • 由Service层输出的封装业务逻辑的对象。
  • 主要作用是把业务逻辑封装为一个对象。这个对象可以包括一个或多个其他对象。
  • 从业务模型的角度看,见UML元件领域模型中的领域对象。
  • 封装业务逻辑的java对象,通过调用DAO方法,结合PO、VO进行业务操作。
  • 这个对象可以包括一个或多个其他对象。比如一个简历、有教育经历、工作经历、关系等等。我们可以把教育经历对应一个PO,工作经历对应一个PO、关系对应一个PO。建立一个对应简历的BO对象处理简历,每个BO包含这些PO。这样处理业务逻辑时,我们就可以针对PO去处理。

关于BO的三个概念:
1.只包含业务对象的属性;
2.只包含业务方法;
3.两者都包含。
在实际使用中,认为哪种概念正确并不重要,关键是实际应用中适合自己项目的需要。

DO

Domain Object 领域对象
  • 即从现实世界中抽象出来的有形或无形的业务实体。
Data Object 数据对象
  • 与数据库表结构一一对应,通过DAO层向上传输数据源对象。
  • 命名规约:数据对象:xxxDO,xxx即为数据表名。

PO

Persistan Object 持久对象
  • 持久化对象,跟持久层(通常是关系型数据库)的数据结构形成一一对应的映射关系,如果持久层是关系型数据库,数据表中的每个字段(或若干个)就对应PO的一个(或若干个)属性。
  • 可以看成是与数据库中的表相映射的java对象。
  • 最简单的PO就是对应数据库中某个表中的一条记录,多个记录可以用PO的集合。
  • PO中应该不包括任何对数据库的操作。
  • 好处:可以把一条记录作为一个对象处理,方便转为其他对象。

VO

Value Object 值对象
  • 通常用于业务层之间的数据传递,和PO一样也是仅仅包含数据而已。
  • 但应是抽象出的业务对象,可以和表对应,也可以不,这根据业务的需要。
View Object 表现层对象
  • 通常是Web向模板渲染引擎层传输的对象。
  • 主要对应界面显示的数据对象。
  • 对于一个WEB页面,或SWT、SWING的一个页面,用一个VO对象对应整个界面的值。
  • 作用:把某个指定页面(或组件)所有的数据封装起来。
  • 命名规约:展示对象:xxxVO,xxx一般为网页名称。

Query

数据查询对象
  • 各层接收上层的查询请求。 注意超过2个参数的查询封装,禁止使用Map类来传输。

POJO

Plain Ordinary Java Object 简单无规则java对象
  • 阿里手册中,POJO专指只有setter/getter/toString的简单类,包括DO/DTO/BO/VO等。
  • 中间层对象。
  • 一个POJO持久化后就是PO;直接用它传递、传递过程中就是DTO;直接用来对应表示层就是VO;’
  • 命名规约:POJO是DO/DTO/BO/VO的统称,禁止命名成xxxPOJO。

DTO

Data Transfer Object 数据传输对象
  • 数据传输对象,Service或Manager向外传输的对象。
  • 这个概念来源于J2EE的设计模式,原来的目的是为了EJB的分布式应用提供粗粒度的数据实体,减少分布式的调用次数,从而提高分布式调用的性能和降低网络负载。
  • 在此泛指用于指标展示层和服务层之间的数据传输对象。
  • DTO是一组需要跨进程或网络边界传输的聚合数据的简单容器。
  • 它不应该包含业务逻辑,并将其行为限制为诸如内部一致性检查和基本验证之类的活动。不要因实现这些方法而导致DTO依赖于任何新类。
  • 在设计数据传输对象时,有两种选择:使用一般集合;使用显式getter和setter方法创建自定义对象。
  • 主要用于远程调用等需要大量传输对象的地方。
  • 比如我们一张表有100个字段,那么对应的PO就有100个属性。
    但是我们界面上只要显示10个字段,
    客户端用WEB service来获取数据,没有必要把整个PO对象传递到客户端,
    这时我们就可以用只有这10个属性的DTO来传递结果到客户端,这样也不会暴露服务端表结构.到达客户端以后,如果用这个对象来对应界面显示,那此时它的 身份就转为VO
  • 命名规约:数据传输对象:xxxDTO,xxx为业务领域相关的名称。

DAO

Data Access Object 数据访问对象
  • 是一个sun的标准j2ee数据访问对象,是一个sun的标准j2ee设计模式。此对象用于访问数据库。
  • 通常和PO结合使用,DAO中包含了各种数据库的操作方法。通过它的方法,结合PO对数据提供数据库的CRUD操作。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值