組成エンティティモード
EJB永続メカニズムで使用されるエンティティモードの組み合わせ(複合エンティティ・パターン)。 合併後は、グラフィカルオブジェクトの代わりに、EJBエンティティBeanです。 結合企業を更新する場合、彼らはEJBエンティティBeanによって管理されているので、内部自動的に、依存オブジェクト豆を更新します。 以下は、参加組成エンティティBeanです。
- 組成エンティティ(コンポジットエンティティ) -メインのエンティティBeanです。これは、粗いことができ、または連続的なライフサイクルのための粗粒のオブジェクトを含んでいてもよいです。
- 粒度の粗いオブジェクト(粒度の粗いオブジェクト) -オブジェクトは、そのオブジェクトが含まれています。それ自身のライフサイクルを持っているだけでなく、依存オブジェクトのライフサイクルを管理します。
- 依存オブジェクト(依存オブジェクト) -依存オブジェクトは、ライフサイクルを継続粒度の粗いオブジェクトのオブジェクトに依存しています。
- 戦略(戦略) -戦略実体の組み合わせを実装する方法を示しています。
実現
私たちは、結合企業CompositeEntityオブジェクトとして作成されます。CoarseGrainedObjectは、依存オブジェクトのクラスが含まれています。
CompositeEntityPatternDemo、物理モデルの組み合わせの使用を実証するために、クライアントクラスを使用して、私たちのデモクラス。
ステップ1
依存オブジェクトを作成します。
DependentObject1.java
パブリッククラスDependentObject1 { プライベート文字列データ。 ます。public void setDataメソッド(文字列データ){ this.data =データ。 } 公共の文字列のgetData(){ データを返します。 } }
DependentObject2.java
パブリッククラスDependentObject2 { プライベート文字列データ。 ます。public void setDataメソッド(文字列データ){ this.data =データ。 } 公共の文字列のgetData(){ データを返します。 } }
ステップ2
粒度の粗いオブジェクトを作成します。
CoarseGrainedObject.java
パブリッククラスCoarseGrainedObject { DependentObject1 DO1 =新しいDependentObject1(); DependentObject2 DO2 =新しいDependentObject2(); ます。public void setDataメソッド(文字列データ1、文字列データ2){ do1.setData(DATA1)。 do2.setData(DATA2)。 } 公共String []型のgetData(){ 返す新しいString [] {do1.getData()、do2.getData()}; } }
ステップ3
エンティティの組み合わせを作成します。
CompositeEntity.java
パブリッククラスCompositeEntity { プライベートCoarseGrainedObjectのCGO =新しいCoarseGrainedObject(); ます。public void setDataメソッド(文字列データ1、文字列データ2){ cgo.setData(DATA1、DATA2)。 } 公共String []型のgetData(){ cgo.getDataを返します(); } }
ステップ4
固体クライアントクラスの組み合わせを使用して作成しました。
Client.java
パブリッククラスクライアント{ プライベートCompositeEntity compositeEntity =新しいCompositeEntity(); 公共ボイド印刷データ(){ {;のために(私は++ iはcompositeEntity.getData()の長さを<= 0 ;. int型) System.out.println( "データ:" + compositeEntity.getData()[i])と、 } } ます。public void setDataメソッド(文字列データ1、文字列データ2){ compositeEntity.setData(DATA1、DATA2)。 } }
ステップ5
物理的なデザインパターンの組み合わせの使用を実証するために、クライアントを使用してください。
CompositeEntityPatternDemo.java
パブリッククラスCompositeEntityPatternDemo { 公共の静的な無効メイン(文字列[] args){ クライアントクライアント=新しいクライアント(); client.setData( "テスト"、 "データ"); client.printData()。 client.setData(「第二の試験 "、"データ1 "); client.printData()。 } }
ステップ6
出力を確認します。
データ:テスト データ:データ データ:第二次試験 データ:データ1