구성 엔티티 모드
EJB를 지속성 메커니즘에 사용되는 엔티티 모드 조합 (복합 엔티티 패턴). 결합 된 개체는 그래픽 객체를 대신하여 EJB 엔티티 빈입니다. 결합 된 개체를 업데이트 할 때 그들은 EJB 엔티티 빈에 의해 관리되기 때문에, 내부 자동으로 종속 객체 콩을 업데이트합니다. 다음은 참가자 조성물 엔티티 빈이다.
- 구성 엔티티 (복합 엔티티) - 주요 엔티티 빈입니다.그것은 거친 될 수있다, 또는 연속 라이프 사이클에 대한 대단위 객체를 포함 할 수있다.
- 결이 거친 물체 (거친 그레인 개체) - 개체는 개체가 포함되어 있습니다.그것은 자신의 라이프 사이클을 갖고, 또한 종속 개체의 수명을 관리.
- 종속 개체 (종속 개체) - 종속 객체는 라이프 사이클이 계속 대단위 개체 개체에 따라 달라집니다 것입니다.
- 전략 (전략) - 전략 개체의 조합을 구현하는 방법을 나타냅니다.
실현
우리는 결합 기업CompositeEntity 개체로만듭니다.CoarseGrainedObject는종속 객체 클래스가 포함되어 있습니다.
CompositeEntityPatternDemo는클라이언트 클래스를 사용하는 우리의 데모 클래스 물리 모델의 조합의 사용을 입증한다.
1 단계
종속 개체를 만듭니다.
DependentObject1.java
공용 클래스 DependentObject1 { 개인 문자열 데이터; 공공 무효 사항 setData (String 데이터) { this.data = 데이터; } 공공 문자열 GetData의 () { 데이터를 반환; } }
DependentObject2.java
공용 클래스 DependentObject2 { 개인 문자열 데이터; 공공 무효 사항 setData (String 데이터) { this.data = 데이터; } 공공 문자열 GetData의 () { 데이터를 반환; } }
2 단계
거친 정제 된 객체를 생성합니다.
CoarseGrainedObject.java
공용 클래스 CoarseGrainedObject { DependentObject1의 DO1 = 새로운 DependentObject1 (); DependentObject2의 DO2 = 새로운 DependentObject2 (); 공공 무효 사항 setData (문자열 데이터 1, 문자열 데이터 2) { do1.setData (DATA1); do2.setData (데이터 2); } 공공 문자열 [] GetData의 () { 반환 새로운 String [] {do1.getData (), do2.getData ()}; } }
3 단계
개체의 조합을 만듭니다.
CompositeEntity.java
공용 클래스 CompositeEntity { 개인 CoarseGrainedObject의 CGO = 새로운 CoarseGrainedObject (); 공공 무효 사항 setData (문자열 데이터 1, 문자열 데이터 2) { cgo.setData (DATA1, DATA2); } 공공 문자열 [] GetData의 () { () cgo.getData를 반환; } }
4 단계
고체 클라이언트 클래스의 조합을 사용하여 만들었다.
Client.java
공용 클래스 클라이언트 { 개인 CompositeEntity compositeEntity = 새로운 CompositeEntity (); 공공 무효 printData () { ()에 i가 0 ;. 내가 compositeEntity.getData를 (<= 길이를 int로, 내가 ++) { 에서 System.out.println ( "데이터 :"+ compositeEntity.getData () [I]); } } 공공 무효 사항 setData (문자열 데이터 1, 문자열 데이터 2) { compositeEntity.setData (DATA1, DATA2); } }
5 단계
물리적 디자인 패턴의 조합의 사용을 설명하기위한클라이언트를사용.
CompositeEntityPatternDemo.java
공용 클래스 CompositeEntityPatternDemo { 공공 정적 무효 메인 (문자열 []에 args) { 클라이언트 클라이언트 = 새로운 클라이언트 (); client.setData ( "테스트", "데이터"); client.printData (); client.setData ( "두 번째 테스트", "데이터 1"); client.printData (); } }
6 단계
출력을 확인합니다.
데이터 : 테스트 데이터 : 데이터 데이터 : 두 번째 테스트 데이터 : 데이터 1