Java组合实体模式

来源:互联网 发布:ug10.0编程视频教程 编辑:程序博客网 时间:2024/06/01 16:57

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

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

实现实例

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

组合实体模式示例的结构如下图所示 -

第1步

创建一个领情对象,其代码如下 -
DependentObject1.java

public class DependentObject1 {   private String data;   public void setData(String data){      this.data = data;    }    public String getData(){      return data;   }}
Java

DependentObject2.java

public class DependentObject2 {   private String data;   public void setData(String data){      this.data = data;    }    public String getData(){      return data;   }}
Java

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

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

第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);   }}
Java

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

第6步

验证输出,执行上面的代码得到以下结果 -

Data: TestData: DataData: Second TestData: Data1
原创粉丝点击