组合实体模式(composite entity pattern)用在 ejb 持久化机制中。一个组合实体是一个 ejb 实体 bean,代表了对象的图解。当更新一个组合实体时,内部依赖对象 beans 会自动更新,因为它们是由 ejb 实体 bean 管理的。以下是组合实体 bean 的参与者。
我们将创建作为组合实体的 compositeentity 对象。coarsegrainedobject 是一个包含依赖对象的类。
compositeentitypatterndemo,我们的演示类使用 client 类来演示组合实体模式的用法。
创建依赖对象。
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; } }
创建粗粒度对象。
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()}; } }
创建组合实体。
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(); } }
创建使用组合实体的客户端类。
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); } }
使用 client 来演示组合实体设计模式的用法。
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(); } }
验证输出。
data: test data: data data: second test data: data1