Modèle d'entité combiné


Le modèle d'entité composite est utilisé dans le mécanisme de persistance des EJB. Une entité composite est un bean entité EJB qui représente une représentation d'un objet. Lorsqu'une entité composite est mise à jour, les beans objets dépendants internes sont automatiquement mis à jour car ils sont gérés par les beans entité EJB. Voici les participants du bean entité composite.

  • Entité composite - C'est le bean entité principal. Il peut être à gros grains ou contenir un objet à gros grains pour une durée de vie persistante.

  • Objet à gros grains - Cet objet contient les objets précédents. Il possède son propre cycle de vie et peut également gérer le cycle de vie des objets dépendants.

  • Objet dépendant - Un objet dépendant est un objet dont le cycle de vie continu dépend d'un objet à gros grains.

  • Stratégies - Les stratégies représentent la manière de mettre en œuvre des entités combinées.

Implémentation

Nous allons créer un objet CompositeEntity qui est une entité composite. CoarseGrainedObject est une classe contenant des objets dépendants.

CompositeEntityPatternDemo, notre classe de démonstration utilise la classe Client pour démontrer l'utilisation du modèle d'entité composite.

compositeentity_pattern_uml_diagram.jpg

Étape 1

Créez des objets dépendants.

DependentObject1.java

public class DependentObject1 {
	
   private String data;

   public void setData(String data){
      this.data = data; 
   } 

   public String getData(){
      return data;
   }
}

DependentObject2.java

public class DependentObject2 {
	
   private String data;

   public void setData(String data){
      this.data = data; 
   } 

   public String getData(){
      return data;
   }
}

Étape 2

Créer un message à gros grains objets .

CoarseGrainedObject.java

public class CoarseGrainedObject {
   DependentObject1 do1 = new DependentObject1();
   DependentObject2 do2 = new DependentObject2();

   public void setData(String data1, String data2){
      do1.setData(data1);
      do2.setData(data2);
   }

   public String[] getData(){
      return new String[] {do1.getData(),do2.getData()};
   }
}

Étape 3

Créez l'entité composite.

CompositeEntity.java

public class CompositeEntity {
   private CoarseGrainedObject cgo = new CoarseGrainedObject();

   public void setData(String data1, String data2){
      cgo.setData(data1, data2);
   }

   public String[] getData(){
      return cgo.getData();
   }
}

Étape 4

Créez une classe client qui utilise des entités composites.

Client.java

public class Client {
   private CompositeEntity compositeEntity = new CompositeEntity();

   public void printData(){
      for (int i = 0; i < compositeEntity.getData().length; i++) {
         System.out.println("Data: " + compositeEntity.getData()[i]);
      }
   }

   public void setData(String data1, String data2){
      compositeEntity.setData(data1, data2);
   }
}

Étape 5

Utilisez Client pour démontrer l'utilisation du modèle de conception d'entité composite.

CompositeEntityPatternDemo.java

public class CompositeEntityPatternDemo {
   public static void main(String[] args) {
       Client client = new Client();
       client.setData("Test", "Data");
       client.printData();
       client.setData("Second Test", "Data1");
       client.printData();
   }
}

Étape 6

Vérifiez la sortie.

Data: Test
Data: Data
Data: Second Test
Data: Data1