CORBA でベース インターフェイスと派生インターフェイスを指定する非常に単純な IDL コードを考えてみましょう。
module test{
interface Quote{
attribute string symbol;
};
interface SpecialQuote:Quote{
attribute string specialSymbol;
};
interface QuoteSender{
void sendQuote(in Quote stock_quote);
}
};
(これは CORBA を想定していますが、他のミドルウェアでも同様のはずです)。次のことができることに興味があります。
- 派生クラス「SpecialQuote」を作成し、specialSymbol を入力します。
- 基本クラス「Quote」にアップキャストし、記号を記入
- 「sendQuote」を使用して CORBA インターフェイス経由で送信する
- 受信側で、SpecialQuote にダウンキャストして、specialSymbol を取得します。
属性は基本的に、プリミティブ データ型ではなく Java の空のセッター/ゲッターに変換されるため、これを実行するのに苦労しています。したがって、クライアント側とサーバー側の両方でセッター/ゲッターを再実装する必要があります。
要するに、ミドルウェア全体でインターフェースメンバーの継承は可能ですか? もしそうなら、CORBAで、何か推奨事項はありますか? 別のミドルウェアの場合、どのミドルウェアですか?