20190125——别闹了 Java组合实体模式
Java组合实体模式
组合实体模式用于EJB持久化机制,组合实体是表示对象图的EJB实体bean。在组合实体更新时,内部依赖对象bean将自动更新由EJB实体bean管理。以下是组合实体bean的参与者。
组合实体:它是主要的实体bean,它可以是粗粒度的或可以包含用于持久性目的的粗粒度对象。
粗粒对象:此对象包含依赖对象,它有自己的生命周期,并且管理依赖对象的生命周期。
依赖对象:依赖对象是一个对象,这取决于它的持久性生命周期粗粒对象。
策略:策略表示如何实现复组合实体。
实现实例
在这个实现的示例中,将创建CompositeEntity对象作为CompositeEntity。
CoarseGrainedObject是一个包含依赖对象的类,CompositeEntityPatternDemo是一个演示类,它使用Client类来演示使用组合实体模式
第一步
package 组合实体模式;
public class DependObject1 {
private String data;
public void setData(String data){
this.data=data;
}
public String getData(){
return data;
}
}
package 组合实体模式;
public class DependObject2 {
private String data;
public String getData() {
return data;
}
public void setData(String data) {
this.data = data;
}
}
第二步
package 组合实体模式;
public class CoarseGrainedObject {
DependObject1 dependObject1=new DependObject1();
DependObject2 dependObject2=new DependObject2();
public void setData(String data1,String data2){
dependObject1.setData(data1);
dependObject2.setData(data2);
}
public String[] getData(){
return new String[]{dependObject1.getData(),dependObject2.getData()};
}
}
第三步
package 组合实体模式;
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();
}
}
第四步
package 组合实体模式;
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);
}
}
package 组合实体模式;
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();
}
}