客户端

Java中的各种对象(POJO、DTO、VO、DAO等)

所在版块: 后端技术 2019-12-10 15:52 [复制链接] 查看: 2457|回复: 0
PO:持久对象(persistent object),就是在Object/Relation Mapping框架中的Entity,PO的每个属性基本上都对应数据库表里面的某个字段。完全是一个符合JavaBean规范的纯Java对象,没有增加别的属性和方法。持久对象是由insert数据库创建,由数据库delete删除的。基本上持久对象生命周期和数据库密切相关。

VO:值对象(Value Object),通常用于业务层之间的数据传递,和PO一样也是仅仅包含数据而已。但应是抽象出的业务对象,可以和表对应,也可以不,这根据业务时的需要。表现层对象(View Object),主要对应展示界面显示的数据对象,用一个VO对象来封装整个界面展示所需的对象数据。

DTO:数据传输对象(Data Transfer Object),是一种设计模式之间传输数据的软件应用系统。数据传输目标往往是数据访问对象从数据库中检索。数据传输对象与数据交互对象或数据访问对象之间的差异是一个不具有任何行为除了存储和检索的数据(访问和存取器)。简单来说,当我们需要一个对象10个字段的内容,但这个对象总共有20个字段,我们不需要把整个PO对象全部字段传输到客户端,而是可以用DTO重新封装,传递到客户端。此时,如果这个对象用来对应界面的显示,就叫VO

POJO:POJO(Plain Ordinary Java Object)简单的Java对象,实际就是普通JavaBeans,是为了避免和EJB混淆所创造的简称。通指没有使用Entity Beans的普通java对象,可以吧POJO作为支持业务逻辑的协助类

DAO:Data Access Object(数据访问对象)是一个面向对象的数据库接口,它可以把POJO持久化为PO,用PO组装出来VO、DTO。DAO模式是标准的J2EE设计模式之一。开发人员使用这个模式把底层的数据访问操作和上层的商务逻辑分开。

DODomain Object 领域对象,就是从现实世界中抽象出来的有形或无形的业务实体。

上叙的每一个划分,基本都是按照功能领域来划分的,也就是领域驱动DDD中提倡的一种思想。所谓规范就是项目中职能的划分就比如:Controller返回给前端的对象就可以使用VO(当然也可以使用DTO),请求的参数对象使用DTO(还有公司请求对象使用的是XxxRequest,相应的对象使用的是XxxResponse),当然这也没有什么完全的限制,具体还是要看项目Leader对这些对象的理解,和具体项目的约定1了。一般命名的话是XxxDTO、XxxDAO等。另外可以参考《阿里巴巴Java开发规范这一本书》


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码关注微信公众号

QQ|Archiver|手机版|小黑屋|mwt-design ( 沪ICP备12041170号-1

GMT+8, 2024-11-24 14:14 , Processed in 0.073308 second(s), 28 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回列表