2010-09-15 140 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