Wzorce projektowe - wzorzec jednostki złożonej
Wzorzec jednostki złożonej jest używany w mechanizmie trwałości EJB. Encja złożona to komponent bean encji EJB, który reprezentuje graf obiektów. Gdy jednostka złożona jest aktualizowana, komponenty bean obiektów zależnych wewnętrznie są aktualizowane automatycznie jako zarządzane przez komponent bean encji EJB. Poniżej znajdują się uczestnicy komponentu Composite Entity Bean.
Composite Entity- To jest fasola pierwotnej jednostki. Może być gruboziarnisty lub może zawierać gruboziarnisty przedmiot do wykorzystania w celu trwałości.
Coarse-Grained Object- Ten obiekt zawiera zależne obiekty. Ma swój własny cykl życia, a także zarządza cyklem życia zależnych obiektów.
Dependent Object - Obiekt zależny to obiekt, który zależy od obiektu gruboziarnistego pod względem cyklu życia trwałości.
Strategies - Strategie reprezentują sposób implementacji jednostki złożonej.
Realizacja
Zamierzamy stworzyć obiekt CompositeEntity działający jako CompositeEntity. CoarseGrainedObject będzie klasą zawierającą zależne obiekty. CompositeEntityPatternDemo , nasza klasa demonstracyjna użyje klasy Client do zademonstrowania użycia wzorca Composite Entity.
Krok 1
Utwórz zależne obiekty.
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;
}
}
Krok 2
Utwórz obiekt gruboziarnisty.
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()};
}
}
Krok 3
Utwórz jednostkę złożoną.
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();
}
}
Krok 4
Utwórz klasę Client, aby używać jednostki złożonej.
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);
}
}
Krok 5
Użyj klienta, aby zademonstrować użycie wzorca projektowego jednostki złożonej.
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();
}
}
Krok 6
Sprawdź dane wyjściowe.
Data: Test
Data: Data
Data: Second Test
Data: Data1