«CORBAInterface» 클래스와의 관계

«CORBAInterface» 클래스 사이의 관계는 관계의 유형 및 다중성에 따라 생성된 IDL의 요소에 맵핑됩니다.

연관 및 집계

«CORBAInterface» 클래스에서 출발하는 대칭적 또는 출력되는 관계 화살표는 다른 «CORBAInterface» 클래스만 대상으로 지정할 수 있습니다. «CORBAInterface» 클래스로 들어오는 입력 관계 화살표는 일반 클래스나 다른 «CORBAInterface» 클래스에서 시작될 수 있습니다.

«CORBAInterface» 클래스에서 출력되거나 대칭적인 관계는 다음과 같이 생성된 IDL에서 액세서 및 뮤테이터 메소드(get(), set(), add()clear())에 맵핑됩니다.

일반화

«CORBAInterface»는 다른 «CORBAInterface»에서만 상속할 수 있습니다.

«CORBAInterface» 클래스 사이의 상속은 해당되는 IDL 인터페이스 사이의 상속으로 생성됩니다. 예를 들어, «CORBAInterface» H«CORBAInterface» G에서 상속되는 경우 H에 대해 다음 IDL 코드가 생성됩니다.

interface H : G {};

일반 클래스와 «CORBAInterface» 사이의 상속 화살표는 인터페이스의 실현(구현)으로 해석됩니다. 이 구조는 CORBA 서버를 구현하기 위해 사용되는 일반적인 아키텍처입니다.

주: 일반적으로 이와 같은 구조체를 가지고 있는 구성의 경우 CORBA::Configuration::CORBAEnable 특성은 코드 생성 오류를 피하기 위해 CORBAServer로 설정해야 합니다.

CORBA에서 오브젝트 어댑터를 실현하는 방법은 두 가지입니다.

CORBA::Class::DefaultImplementationMethod는 프로젝트에 대한 구현 메소드(Inheritance 또는 TIE)를 지정합니다. 즉, DefaultImplementationMethodInheritance로 설정되는 경우 CORBA 인터페이스의 모든 실현은 기본적으로 상속을 사용하여 구현됩니다.

예를 들어, TAO 및 상속 구현 메소드를 사용하는 경우 «CORBAInterface» I에서 상속되는 클래스 J에 대해 다음 코드가 생성됩니다.

class J : virtual public IBOAImpl {
public :
   // Constructors and destructors
   J(const char* instanceName = "");
   -J();
};

생성된 코드에서 실현하는 클래스 J는 TAO IDL 컴파일러에 의해 생성되는 IBOAImpl 클래스에서 상속됩니다.

특정 클래스에 대한 CORBA::Class::TIERealizes 또는 InheritanceRealizes 특성을, 클래스가 실현하는 «CORBAInterface» 클래스의 이름으로 설정하여 기본 구현 메소드를 대체할 수 있습니다. 즉, 프로젝트에 대한 기본 구현 메소드로 상속을 사용하는 경우에도 해당되는 TIERealizes 특성을, 클래스가 실현하는 «CORBAInterface»의 이름으로 설정하여 특정 클래스에 대한 구현 메소드로 TIE를 계속 사용할 수 있습니다. 동일한 클래스에 대한 TIERealizesInheritanceRealizes 설정을, 클래스가 어느 하나의 메소드를 사용하여 실현하는 «CORBAInterface» 클래스의 이름으로 설정하여, 동일한 클래스가 서로 다른 메소드를 사용하여 다른 «CORBAInterface» 클래스를 실현하도록 할 수 있습니다.

컴포지션

«CORBAInterface» 클래스는 어떤 요소에도 포함될 수 없습니다. «CORBAInterface» 클래스 자체에는 «CORBAException» 클래스만 포함됩니다.


피드백