Design Patterns - Composite Entity Pattern
Il modello di entità composita viene utilizzato nel meccanismo di persistenza EJB. Un'entità Composite è un bean di entità EJB che rappresenta un grafico di oggetti. Quando un'entità composita viene aggiornata, i bean di oggetti dipendenti internamente vengono aggiornati automaticamente come gestiti dal bean di entità EJB. Di seguito sono riportati i partecipanti a Composite Entity Bean.
Composite Entity- È il bean di entità primaria. Può essere a grana grossa o può contenere un oggetto a grana grossa da utilizzare a scopo di persistenza.
Coarse-Grained Object- Questo oggetto contiene oggetti dipendenti. Ha un proprio ciclo di vita e gestisce anche il ciclo di vita degli oggetti dipendenti.
Dependent Object - L'oggetto dipendente è un oggetto che dipende da un oggetto a grana grossa per il suo ciclo di vita di persistenza.
Strategies - Strategies rappresenta come implementare un'entità composta.
Implementazione
Creeremo un oggetto CompositeEntity che funge da CompositeEntity. CoarseGrainedObject sarà una classe che contiene oggetti dipendenti. CompositeEntityPatternDemo , la nostra classe demo utilizzerà la classe Client per dimostrare l'uso del pattern di entità composite.
Passo 1
Crea oggetti dipendenti.
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;
}
}
Passo 2
Crea oggetto a grana grossa.
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()};
}
}
Passaggio 3
Crea entità composita.
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();
}
}
Passaggio 4
Crea la classe Client per utilizzare l'entità composita.
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);
}
}
Passaggio 5
Utilizzare il client per dimostrare l'utilizzo del modello di progettazione di 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();
}
}
Passaggio 6
Verifica l'output.
Data: Test
Data: Data
Data: Second Test
Data: Data1