鍍金池/ 教程/ Java/ Java組合實(shí)體模式
Java前端控制器模式
Java工廠設(shè)計(jì)模式
Java抽象工廠模式
Java觀察者模式
Java門面模式(或外觀模式)
Java備忘錄模式
Java MVC模式
Java單例模式
Java傳輸對(duì)象模式
Java迭代器模式
Java責(zé)任鏈模式
Java命令模式
Java原型模式
Java解釋器模式
Java適配器模式
Java狀態(tài)模式
Java中介者模式(Mediator Pattern)
Java攔截過(guò)濾器模式
Java策略模式
Java組合模式
Java業(yè)務(wù)代理模式
Java裝飾模式
Java模板模式
Java橋接模式
Java過(guò)濾器模式(條件模式)
Java享元模式(Flyweight Pattern)
Java建造者(Builder)模式
Java設(shè)計(jì)模式
Java空對(duì)象模式
Java數(shù)據(jù)訪問(wèn)對(duì)象模式
Java訪問(wèn)者模式
Java組合實(shí)體模式
Java服務(wù)定位器模式

Java組合實(shí)體模式

組合實(shí)體模式用于EJB持久化機(jī)制。 組合實(shí)體是表示對(duì)象圖的EJB實(shí)體bean。 當(dāng)組合實(shí)體更新時(shí),內(nèi)部依賴對(duì)象bean將自動(dòng)更新為由EJB實(shí)體bean管理。 以下是組合實(shí)體Bean的參與者。

  • 組合實(shí)體 - 它是主要的實(shí)體bean。 它可以是粗粒度的或可以包含用于持久性目的的粗粒度對(duì)象。
  • 粗粒對(duì)象 - 此對(duì)象包含依賴對(duì)象。 它有自己的生命周期,并且管理依賴對(duì)象的生命周期。
  • 依賴對(duì)象 - 依賴對(duì)象是一個(gè)對(duì)象,這取決于它的持久性生命周期粗粒對(duì)象。
  • 策略 - 策略表示如何實(shí)現(xiàn)復(fù)組合實(shí)體。

實(shí)現(xiàn)實(shí)例

在這個(gè)實(shí)現(xiàn)的示例中,將創(chuàng)建CompositeEntity對(duì)象作為CompositeEntityCoarseGrainedObject是一個(gè)包含依賴對(duì)象的類。 CompositeEntityPatternDemo是一個(gè)演示類,它使用Client類來(lái)演示使用組合實(shí)體模式。

組合實(shí)體模式示例的結(jié)構(gòu)如下圖所示 -

第1步

創(chuàng)建一個(gè)領(lǐng)情對(duì)象,其代碼如下 -
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步

創(chuàng)建粗粒度類對(duì)象,其代碼如下 -
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步

創(chuàng)建組合實(shí)體,其代碼如下 -
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步

創(chuàng)建Client類以使用組合實(shí)體,其代碼如下 -
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步

使用客戶端來(lái)演示組合實(shí)體設(shè)計(jì)模式的使用。
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步

驗(yàn)證輸出,執(zhí)行上面的代碼得到以下結(jié)果 -

Data: Test
Data: Data
Data: Second Test
Data: Data1