2010-09-15 132 views

回答

7

“普通香草”豆/类是指一个非常基本的类,通常具有以下属性;

  • 不延长或实施任何
  • 拥有私有类变量
  • 有一个空的构造
  • 有标准的getter/setter方法

这也被称为POJO(简单旧Java对象)。例如;

public class MyPojo 
{ 
    /* 
    * Private class variables 
    */ 
    private String name; 
    private int size; 

    /** 
    * Empty constructor 
    */ 
    public MyPojo() 
    { 
    } 

    /* 
    * Standard getter/setters 
    */ 
    public String getName() 
    { 
     return name; 
    } 

    public void setName(String name) 
    { 
     this.name = name; 
    } 

    public int getSize() 
    { 
     return size; 
    } 

    public void setSize(int size) 
    { 
     this.size = size; 
    } 
} 
+1

“不扩展或实现任何东西”可能更确切地说是“不扩展或实现任何来自给定框架的任何东西”,这有点模糊 - 但对于POJO实现/扩展东西 - 东北你自己的东西很好。 – nos 2010-09-15 09:48:17

1

的“纯香草”参考是从JavaBeans的(一个古老的最佳实践为可重复使用的GUI窗口小部件)和EnterpriseJavaBeans(在Java EE规范的元素)区别开来。

普通香草类不需要满足任何框架或方案的要求。

普通香草豆是一个带有增变器和存取器(即getter/setter)的类,但没有任何行为。

1

我认为“普通的香草的Java Bean”和POJO的历史是这样的:

  1. Java 1.0中出来,包括Java Bean的规范(如默认构造函数,getter/setter方法的属性等)允许它们与VB风格的编辑器进行交互。
  2. “企业”Java Bean(EJB)1.0出现用于描述分布式事务性持久组件。
  3. J2EE标准于1999年在Java One上发布,它为我们提供了管理对象生命周期,线程,池等的容器,并为EJB提供了诸如命名,查找等企业服务。
  4. 人们发现EJB 1.0和2.0规范需要大量的代码,并且可以用来做简单的事情。
  5. 与EJB 2.0的冲突将我们带回到POJO,引发了Spring,Guice和其他尝试再次简化事情的DI/AOP框架。
+0

谢谢,历史沿革对理解这一点非常有用。 – Gruber 2017-05-12 17:17:48

3

“普通香草Java类”(又名POJO)是一个具有属性的类。正如名字所说,它是一个普通的旧Java对象。
理想情况下,POJO不会扩展任何类,也不会实现任何接口。它也没有注释。


“普通香草Java Bean”(又名JavaBean)是一个有一定要求的类。

  • 它必须有一个默认的构造函数
  • 它必须有getter和setter其属性
  • 它必须实现Serializable

所以一个JavaBean是一种POJO的(不是一个理想的POJO因为它实现了Serializable)有一些限制。


资源:

关于同一主题:

1

'香草' 的描述来自冰淇淋,我想,并介绍了常用的或基本的味道可用。因此,香草pojos是朴实无华,简单朴素的pojos。该术语也用于金融和性,也可能用于其他领域。 (这是非技术性的SO回答我已发布!)

+0

非技术性,但非常有启发性 – dellasavia 2018-03-08 16:07:21