java 名词解释

1. 什么是POJO

POJO是Plain Ordinary Java Object的缩写不错,但是它通指没有使用Entity Beans的普通java对象,没有任何有关业务逻辑的实现,可以把POJO作为支持业务逻辑的协助类。

POJO的名称有多种,pure old java object (纯java对象)、plain ordinary java object (普通java对象)等。

POJO的内在含义是指那些没有从任何类继承、也没有实现任何接口,更没有被其它框架侵入的java对象。

  1. 为什么会有POJO?

      主要是Java的开发者被EJB的繁杂搞怕了,大家经过反思,又回归“纯洁老式”的Java对象,即有无参构造函数,每个字段都有getter和setter的java类。
      POJO的意义就在于它的简单而灵活性,因为它的简单和灵活,使得POJO能够任意扩展,从而胜任多个场合,也就让一个模型贯穿多个层成为现实。先写一个核心POJO,然后实现业务逻辑接口和持久化接口,就成了Domain Model; UI需要使用时,就实现数据绑定接口,变成VO(View Object)。

  2. POJO与PO、VO的区别

    a、POJO是指简单java对象(Plain Old Java Objects、pure old java object 或者 plain ordinary java object)。
    b、PO是指持久对象(persistant object持久对象)。
    c、VO是指值对象或者View对象(Value Object、View Object)。注意,本文的VO特指View Object。

      持久对象实际上必须对应数据库中的entity,所以和POJO有所区别。比如说POJO是由new创建,由GC回收。但是持久对象是insert数据库创建,由数据库delete删除的。基本上持久对象生命周期和数据库密切相关。另外持久对象往往只能存在一个数据库Connection之中,Connnection关闭以后,持久对象就不存在了,而POJO只要不被GC回收,总是存在的。
      由于存在诸多差别,因此持久对象PO(Persistent Object)在代码上肯定和POJO不同,起码PO相对于POJO会增加一些用来管理数据库entity状态的属性和方法。而ORM追求的目标就是要PO在使用上尽量和POJO一致,对于程序员来说,他们可以把PO当做POJO来用,而感觉不到PO的存在。

  3. POJO的扩展

      POJO仅包含最简单的字段属性,没有多余的东西,它本质上就是一个普通的JavaBean。但是在POJO的基础上,能够扩展出不同的对象:
    a、为POJO增加了持久化的方法(Insert、Update、Delete……)之后,POJO就变成了PO。
    b、为POJO增加了数据绑定功能之后,POJO就变成了View Object,即UI Model。
    c、为POJO增加业务逻辑的方法(比如单据审核、转帐……)之后,POJO就变成了Domain Model。
    d、 POJO还可以当作DTO使用,等等。

  4. 总结:
      POJO就是普通的java Object(不是什么高大上,就是普通的java对象,起了一个挺哄人的名字),有属性变量,加上getter,setter方法,没有类继承、也没有实现任何接口,更没有被其它框架侵入的java对象。

2.JavaBean

  1. JavaBean 是一种JAVA语言写成的可重用组件。为写成JavaBean,类必须是具体的和公共的,并且具有无参数的构造器。JavaBean 通过提供符合一致性设计模式的公共方法将内部域暴露成员属性,long和class方法获取。众所周知,属性名称符合这种模式,其他Java 类可以通过自省机制发现和操作这些JavaBean 的属性。
  2. JavaBean规范
    (1)JavaBean 类必须是一个公共类,并将其访问属性设置为 public ,如: public class user{ …}
    (2)JavaBean 类必须有一个空的构造函数:类中必须有一个不带参数的公用构造器,例如:public User() {…}
    (3)一个javaBean类不应有公共实例变量,类变量都为private ,如: private int id;
    ( 4 )javaBean属性是具有getter/setter方法的成员变量。也可以只提供getter方法,这样的属性叫只读属性;也可以只提供setter方法,这样的属性叫只写属性; 如果属性类型为boolean类型,那么读方法的格式可以是get或is。例如名为abc的boolean类型的属性,它的读方法可以是getAbc(),也可以是isAbc();
  3. POJO与javabean的区别

      POJO和JavaBean是我们常见的两个关键字,一般容易混淆,POJO全称是Plain Ordinary Java Object / Pure Old Java Object,中文可以翻译成:普通Java类,具有一部分getter/setter方法的那种类就可以称作POJO,但是JavaBean则比 POJO复杂很多, Java Bean 是可复用的组件,对 Java Bean 并没有严格的规范,理论上讲,任何一个 Java 类都可以是一个 Bean 。但通常情况下,由于 Java Bean 是被容器所创建(如 Tomcat) 的,所以 Java Bean 应具有一个无参的构造器,另外,通常 Java Bean 还要实现 Serializable 接口用于实现 Bean 的持久性。 Java Bean 是不能被跨进程访问的。
      JavaBean是一种组件技术,就好像你做了一个扳子,而这个扳子会在很多地方被拿去用,这个扳子也提供多种功能(你可以拿这个扳子扳、锤、撬等等),而这个扳子就是一个组件。
      一般在web应用程序中建立一个数据库的映射对象时,我们只能称它为POJO。POJO(Plain Old Java Object)这个名字用来强调它是一个普通java对象,而不是一个特殊的对象,其主要用来指代那些没有遵从特定的Java对象模型、约定或框架(如EJB)的Java对象。理想地讲,一个POJO是一个不受任何限制的Java对象(除了Java语言规范)。

  4. 总结:

参考:https://www.cnblogs.com/yezhenhan/archive/2011/11/21/2256642.html

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值