Modèles de conception - Modèle d'entité composite

Le modèle d'entité composite est utilisé dans le mécanisme de persistance EJB. Une entité composite est un bean entité EJB qui représente un graphe d'objets. Lorsqu'une entité composite est mise à jour, les beans objets dépendants en interne sont mis à jour automatiquement comme étant gérés par le bean entité EJB. Voici les participants à Composite Entity Bean.

  • Composite Entity- C'est le bean entité primaire. Il peut être à gros grains ou contenir un objet à gros grains à utiliser à des fins de persistance.

  • Coarse-Grained Object- Cet objet contient des objets dépendants. Il a son propre cycle de vie et gère également le cycle de vie des objets dépendants.

  • Dependent Object - Un objet dépendant est un objet qui dépend d'un objet à grain grossier pour son cycle de vie de persistance.

  • Strategies - Stratégies représente la manière de mettre en œuvre une entité composite.

la mise en oeuvre

Nous allons créer un objet CompositeEntity agissant en tant que CompositeEntity. CoarseGrainedObject sera une classe qui contient des objets dépendants. CompositeEntityPatternDemo , notre classe de démonstration utilisera la classe Client pour démontrer l'utilisation du modèle d'entité composite.

É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 objet à gros grains.

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éer une 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 la classe Client pour utiliser l'entité composite.

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 le 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