首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Java 中各种DTO,POJO 等的概念

刚入行菜鸟,在实际项目开发中,看到封装了各种对象,不了解,自己百度查了资料,算作一个记录吧 ,如有错误,请多指教

BO(Business Object)业务对象

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

关于BO主要有三种概念

1 、只包含业务对象的属性;

2 、只包含业务方法;

3 、两者都包含。

DAO(Data Access Object)数据访问对象

此对象用于访问数据库,通常与 PO 结合使用,DAO 中包含了各种数据库的操作方法,结合 PO 对数据库进行相关操作,处于业务逻辑与数据库资源中间,通过它可以把 POJO 持久化为 PO,用 PO 组装 VO、DTO。

DO(Domain Object)领域对象

也称数据对象,从现实世界中抽象的业务实体。xxxDO,xxx 即为数据表名。

DTO(Data Transfer Object)数据传输对象

用于远程调用等需要大量传输对象的地方,也可以泛指用于展示层与服务层之间的数据传输对象。例如数据库中有100个字段,我们映射的PO可能就有100个属性,但是,我们界面展示可能需要10或者为了安全不能把他们都传递到界面,所以需要DTO,只需要把我们需要的封装成一个对象就可以。xxxDTO,xxx 为业务领域相关的名称

PO(Persistent Object)持久对象

可以看成是与数据库中的表映射的 Java 对象,最简单的 PO 就是对应数据库中某个表中的一条记录,多个记录可以用 PO 的集合,PO 中应该不包含任何对数据库的操作。

VO(View Object)展示对象

通常用于业务层之间的数据传递,和 PO 一样也是仅仅包含数据而已,是抽象出来的业务对象,PO 只能用在数据层,VO 用在表示层。也称值对象(value object)xxxVO,xxx 一般为网页名称。

POJO(Plain Ordinary Java Object)简单 Java 对象

那些没有继承任何类、也没有实现任何接口,更没有被其它框架侵入的java对象。传统意义上的 Java 对象,就是说在一些表关系映射工具中,能够做到维护数据库表记录的持久化对象完全是一个符合 Java Bean 规范的纯 Java 对象,也可以理解成最基本的 Java Bean。没有增加别的属性和方法,只有属性字段及 setter 和 getter 方法。POJO 是 DO/DTO/BO/VO 的统称,但禁止命名成 xxxPOJO。可以认为是一个中间对象。

POJO持久化之后==>PO

POJO传输过程==>DTO

POJO用做表示层==>VO

什么是JavaBean?

JavaBean实际上是指一种特殊的Java类,它通常用来实现一些比较常用的简单功能,并可以很容易的被重用或者是插入其他应用程序中去。所有遵循“一定编程原则”的Java类都可以被称作JavaBean。

JavaBean是一个遵循特定写法的Java类,是一种Java语言编写的可重用组件,它的方法命名,构造及行为必须符合特定的约定:

1、这个类必须具有一个公共的(public)无参构造函数;

2、所有属性私有化(private);

3、私有化的属性必须通过public类型的方法(getter和setter)暴露给其他程序,并且方法的命名也必须遵循一定的命名规范。

4、这个类应是可序列化的。(比如可以实现Serializable 接口,用于实现bean的持久性)

什么是EJB 、Entity Bean?

1.Enterprise Bean,也就是Enterprise JavaBean(EJB),是J2EE的一部分,定义了一个用于开发基于组件的企业多重应用程序的标准。其特点包括网络服务支持和核心开发工具(SDK)。已被淘汰

2.Entity Bean是域模型对象,用于实现O/R映射,负责将数据库中的表记录映射为内存中的Entity对象,事实上,创建一个Entity Bean对象相当于新建一条记录,删除一个 Entity Bean会同时从数据库中删除对应记录,修改一个Entity Bean时,容器会自动将Entity Bean的状态和数据库同步。也被称为实体类

下次有时间再整理命名规范吧,虽然简单。但是常用,而且刚开始一直被强调

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20190213G116NS00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券