Java設計模式
Java工廠設計模式
Java抽象工廠模式
Java單例模式
Java建造者(Builder)模式
Java原型模式
Java適配器模式
Java橋接模式
Java過濾器模式(條件模式)
Java組合模式
Java裝飾模式
Java門面模式(或外觀模式)
Java享元模式(Flyweight Pattern)
Java責任鏈模式
Java命令模式
Java迭代器模式
Java中介者模式(Mediator Pattern)
Java解釋器模式
Java備忘錄模式
Java觀察者模式
Java狀態模式
Java空對象模式
Java策略模式
Java模板模式
Java訪問者模式
Java MVC模式
Java業務代理模式
Java組合實體模式
Java數據訪問對象模式
Java前端控制器模式
Java攔截過濾器模式
Java服務定位器模式
Java傳輸對象模式
Java組合實體模式
組合實體模式用於EJB持久化機制。 組合實體是表示對象圖的EJB實體bean。 當組合實體更新時,內部依賴對象bean將自動更新爲由EJB實體bean管理。 以下是組合實體Bean的參與者。
- 組合實體 - 它是主要的實體bean。 它可以是粗粒度的或可以包含用於持久性目的的粗粒度對象。
- 粗粒對象 - 此對象包含依賴對象。 它有自己的生命週期,並且管理依賴對象的生命週期。
- 依賴對象 - 依賴對象是一個對象,這取決於它的持久性生命週期粗粒對象。
- 策略 - 策略表示如何實現復組合實體。
實現實例
在這個實現的示例中,將創建CompositeEntity
對象作爲CompositeEntity
。 CoarseGrainedObject
是一個包含依賴對象的類。 CompositeEntityPatternDemo
是一個演示類,它使用Client
類來演示使用組合實體模式。
組合實體模式示例的結構如下圖所示 -
第1步
創建一個領情對象,其代碼如下 -
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;
}
}
第2步
創建粗粒度類對象,其代碼如下 -
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()};
}
}
第3步
創建組合實體,其代碼如下 -
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();
}
}
第4步
創建Client
類以使用組合實體,其代碼如下 -
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);
}
}
第5步
使用客戶端來演示組合實體設計模式的使用。
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();
}
}
第6步
驗證輸出,執行上面的代碼得到以下結果 -
Data: Test
Data: Data
Data: Second Test
Data: Data1