設計模式之組合實體模式(Composite Entity Pattern)
阿新 • • 發佈:2018-12-21
組合實體模式(Composite Entity Pattern)用在 EJB 持久化機制中。一個組合實體是一個 EJB 實體 bean,代表了物件的圖解。當更新一個組合實體時,內部依賴物件 beans 會自動更新,因為它們是由 EJB 實體 bean 管理的。以下是組合實體 bean 的參與者。
組合實體(Composite Entity) - 它是主要的實體 bean。它可以是粗粒的,或者可以包含一個粗粒度物件,用於持續生命週期。
粗粒度物件(Coarse-Grained Object) - 該物件包含依賴物件。它有自己的生命週期,也能管理依賴物件的生命週期。
依賴物件(Dependent Object)
策略(Strategies) - 策略表示如何實現組合實體。
程式碼:
1.依賴物件
//依賴物件1
public class DependentObject1 {
private String data;
public String getData() {
return data;
}
public void setData(String data) {
this.data = data;
}
}
public class DependentObject2 { private String data; public String getData() { return data; } public void setData(String data) { this.data = data; } }
2.粗粒度物件
public class CoarseGrainedObject { DependentObject1 obj1=new DependentObject1(); DependentObject2 obj2=new DependentObject2(); public void setData(String data1,String data2) { obj1.setData(data1); obj2.setData(data2); } public String[] getData() { return new String[] {obj1.getData(),obj2.getData()}; } }
3.組合實體
//組合實體
public class CompositeEntity {
private CoarseGrainedObject obj=new CoarseGrainedObject();
public String[] getData() {
return obj.getData();
}
public void setData(String data1,String data2) {
this.obj.setData(data1, data2);;
}
}
4.策略
public class Client {
private CompositeEntity entity=new CompositeEntity();
public void setData(String data1,String data2) {
this.entity.setData(data1, data2);
}
public void printData() {
for (String data : entity.getData()) {
System.out.println("Data:"+data);
}
}
}
5.測試
public class Test {
public static void main(String[] args) {
Client client=new Client();
client.setData("james", "bond");
client.printData();
}
}
6.測試結果
Data:james
Data:bond
7.結論
不太理解,可能是生命週期不同。還望有懂的指教。