«CORBAInterface» クラスとの関係

«CORBAInterface» クラス間の関係は、関係のタイプおよび多重度に基づいて、生成された IDL 内の要素にマップされます。

関連および集約

«CORBAInterface» クラスから出る外向き、または対称的な関係の矢印は、もう 1 つの «CORBAInterface» クラスのみをターゲットとすることができます。«CORBAInterface» クラスへ向かう内向きの関係の矢印は、通常クラスまたは他の «CORBAInterface» クラスのいずれかから出すことができます。

«CORBAInterface» クラスからの、外向き、または対称的な関係は、以下のように、作成された IDL 内の アクセサー・メソッドまたはミューテーター・メソッド (get()set()add()、および clear() など) にマップされます。

汎化

«CORBAInterface» は、もう 1 つの «CORBAInterface» からのみ継承できます。

2 つの «CORBAInterface» クラス間の継承は、対応 IDL インターフェース間の継承内に生成されます。例えば、«CORBAInterface» H«CORBAInterface» G から継承される場合、H 用に、次の IDL コードが生成されます。

interface H : G {};

通常クラスと «CORBAInterface» 間の継承矢印は、インターフェースの実現 (実装) として解釈されます。この構造は、CORBA サーバーの実装に使用される標準的なアーキテクチャーです。

注: 一般に、このような構造の構成では、CORBA::Configuration::CORBAEnable プロパティーは、コード生成エラーを回避するために CORBAServer に設定する必要があります。

CORBA でオブジェクト・アダプターを実現するには、次の 2 つの方法があります。

CORBA::Class::DefaultImplementationMethod は、プロジェクトの実装メソッド (Inheritance または TIE) を指定します。すなわち、DefaultImplementationMethodInheritance に設定されている場合、CORBA インターフェースの実現すべてが、デフォルトにより、継承を使用して実装されます。

例えば、TAO および継承実装メソッドを使用する場合、次のコードが クラス J 用に生成され、«CORBAInterface» I から継承されています。

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 を使用し続けることができます。同じクラスのための TIERealizes および InheritanceRealizes プロパティーを、それによっていずれかのメソッドを使用して実現される «CORBAInterface» クラスの名前に設定することで、異なるメソッドを使用する、異なる «CORBAInterface» クラスを実現させることができます。

コンポジション

«CORBAInterface» クラスを、要素に含めることはできません。«CORBAInterface» クラス自体は、«CORBAException» クラスのみを含みます。


フィードバック