Padrões de projeto - Padrão de entidade composta
O padrão Composite Entity é usado no mecanismo de persistência EJB. Uma entidade Composite é um bean de entidade EJB que representa um gráfico de objetos. Quando uma entidade composta é atualizada, os beans de objetos internamente dependentes são atualizados automaticamente como sendo gerenciados pelo bean de entidade EJB. A seguir estão os participantes do Composite Entity Bean.
Composite Entity- É um bean de entidade primário. Ele pode ser de granulação grossa ou pode conter um objeto de granulação grossa a ser usado para fins de persistência.
Coarse-Grained Object- Este objeto contém objetos dependentes. Ele tem seu próprio ciclo de vida e também gerencia o ciclo de vida de objetos dependentes.
Dependent Object - Objeto dependente é um objeto que depende de um objeto de granulação grossa para seu ciclo de vida de persistência.
Strategies - Estratégias representa como implementar uma entidade composta.
Implementação
Vamos criar o objeto CompositeEntity atuando como CompositeEntity. CoarseGrainedObject será uma classe que contém objetos dependentes. CompositeEntityPatternDemo , nossa classe de demonstração usará a classe Client para demonstrar o uso do padrão Composite Entity.
Passo 1
Crie objetos dependentes.
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
Criar objeto granulado grosso.
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()};
}
}
etapa 3
Crie uma entidade composta.
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();
}
}
Passo 4
Crie a classe Client para usar Composite Entity.
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);
}
}
Etapa 5
Use o cliente para demonstrar o uso do padrão de design de entidade composta.
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();
}
}
Etapa 6
Verifique a saída.
Data: Test
Data: Data
Data: Second Test
Data: Data1