20190125——别闹了 Java组合实体模式

Java组合实体模式
组合实体模式用于EJB持久化机制,组合实体是表示对象图的EJB实体bean。在组合实体更新时,内部依赖对象bean将自动更新由EJB实体bean管理。以下是组合实体bean的参与者。

组合实体:它是主要的实体bean,它可以是粗粒度的或可以包含用于持久性目的的粗粒度对象。
粗粒对象:此对象包含依赖对象,它有自己的生命周期,并且管理依赖对象的生命周期。
依赖对象:依赖对象是一个对象,这取决于它的持久性生命周期粗粒对象。
策略:策略表示如何实现复组合实体。

实现实例
在这个实现的示例中,将创建CompositeEntity对象作为CompositeEntity。
CoarseGrainedObject是一个包含依赖对象的类,CompositeEntityPatternDemo是一个演示类,它使用Client类来演示使用组合实体模式

20190125——别闹了 Java组合实体模式

20190125——别闹了 Java组合实体模式
第一步

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();
    }
}