準則: 指出 Entity Bean
這個準則討論如何指出和塑造 J2EE 應用程式的 Entity Bean。
關係
相關元素
主要說明

簡介

這個準則以指出 Entity Bean 為重點。準則:Entity Bean 提供 Entity Bean 的其他指引。準則:Enterprise JavaBean (EJB) 提供 EJB 的一般指引。

指出 Entity Bean

實體分析類別(請參閱工作成果:分析類別)通常適合做為 Entity Bean,因為 Entity Bean 很適合保存持續資料。Entity Bean 對應於包含持續狀態的商業實體。Entity Bean 提供服務來實作商業實體的特定邏輯。Entity Bean 的另一項特質是可以同時對許多用戶端提供服務。EJB 儲存區處理這些用戶端和交易之間的協調。

Entity Bean 用於提供持續性,但也可以封裝商業邏輯。通常,Entity Bean 只包含 Entity Bean 及任何相依資料物件所保留的資料的相關商業邏輯。Entity Bean 之間的邏輯通常應該抽出放入 Session Bean 中,以儘量切斷 Entity Bean 之間的關係。

建模 Entity Bean

請參閱準則:指出 Enterprise JavaBeans (EJB)

精度

精度是指實體 EJB 代表的資料大小。適當的精度取決於使用的 EJB 規格版本。

在 EJB 2.0 以前,總是建議實體 EJB 採取概略的作法 - 通常代表從多個資料庫表格中組成的一大批資料群。這是因為每一個實體 EJB 的成本負荷較大 - 尤其是關於支援遠端存取的負荷。例如,發票上的商品細目或試算表的資料格太精細,最好不要經常透過網路來存取。相反地,如果資料需要其他商業邏輯,則發票帳目的邏輯分組或試算表的一組資料格可以塑造為實體 EJB。

到了 EJB 2.0,情況稍微有改變 - 運用本端介面可降低部分負荷,且更精細的物件可以塑造為 EJB。概念:Java 2 Platform 企業版 (J2EE) 概觀描述本端或遠端介面。本端介面沒有像遠端介面一樣的成本負荷,可讓關係密切的 Bean 更有效率地互動。本端介面特別適用於構成更大實體的較精細實體,由較大的實體負責建立和消滅各成份。用戶端使用較大實體的遠端介面,由較大實體再以本端介面和各成份互動。

因此,如果 Entity Bean 對另一個類別具有組合關係,則您可能決定將此類別塑造為普通 Java 類別,而非 Entity Bean。如果使用儲存區管理的持續性,則此 Java 類別稱為「相依值類別」。相依值類別比 Entity Bean 更容易也更快速開發和測試,只要組合類別不需要 Entity Bean 特性,應該是一個不錯的選擇。相依值類別的一些限制如下:

  • 不能包含 Entity Bean 參照
  • 根據值來「取得」和「設定」,多少會影響效能,但可以從遠端介面存取

封裝

考量以 Session Bean 外觀來包裝一組相關的 Entity Bean,以提供邏輯介面來操作對應於實體 EJB 的商業實體。請參閱準則:指出 Session Bean

類似的方法是以一個 Entity Bean 封裝另一組通常相依的本端 Entity Bean。遠端用戶端透過「主要」Entity Bean 來存取所有資料。Core J2EE Patterns - Composite Entity Pattern ([ALU01] 中討論此替代方案 - 不過,建議以較簡單的 Session Bean 外觀來管理 Entity Bean 關係。