결합된 엔터티 패턴


복합 엔터티 패턴은 EJB 지속성 메커니즘에 사용됩니다. 복합 엔터티는 객체의 표현을 나타내는 EJB 엔터티 Bean입니다. 복합 엔터티가 업데이트되면 내부 종속 개체 Bean은 EJB 엔터티 Bean에 의해 관리되므로 자동으로 업데이트됩니다. 다음은 Composite Entity Bean의 참여자이다.

  • Composite Entity - 주요 엔터티 빈입니다. 거친 입자일 수도 있고 지속적인 수명을 위해 거친 입자를 포함할 수도 있습니다.

  • 거친 개체 - 이 개체에는 다음 개체가 포함되어 있습니다. 자체 라이프사이클이 있으며 종속 객체의 라이프사이클을 관리할 수도 있습니다.

  • 종속 개체 - 종속 개체는 지속적인 수명 주기가 대략적인 개체에 의존하는 개체입니다.

  • Strategies - 전략은 결합된 엔터티를 구현하는 방법을 나타냅니다.

Implementation

복합 엔터티인 CompositeEntity 객체를 생성하겠습니다. CoarseGrainedObject는 종속 객체를 포함하는 클래스입니다.

CompositeEntityPatternDemo, 데모 클래스에서는 Client 클래스를 사용하여 복합 엔터티 패턴의 사용법을 보여줍니다.

compositeentity_pattern_uml_diagram.jpg

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.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단계

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

6단계

출력을 확인합니다.

rreee