0

CORBA でベース インターフェイスと派生インターフェイスを指定する非常に単純な IDL コードを考えてみましょう。

module test{    
    interface Quote{
        attribute string symbol;
    };

    interface SpecialQuote:Quote{
        attribute string specialSymbol;
    };

    interface QuoteSender{
        void sendQuote(in Quote stock_quote);
    }
};

(これは CORBA を想定していますが、他のミドルウェアでも同様のはずです)。次のことができることに興味があります。

  1. 派生クラス「SpecialQuote」を作成し、specialSymbol を入力します。
  2. 基本クラス「Quote」にアップキャストし、記号を記入
  3. 「sendQuote」を使用して CORBA インターフェイス経由で送信する
  4. 受信側で、SpecialQuote にダウンキャストして、specialSymbol を取得します。

属性は基本的に、プリミティブ データ型ではなく Java の空のセッター/ゲッターに変換されるため、これを実行するのに苦労しています。したがって、クライアント側とサーバー側の両方でセッター/ゲッターを再実装する必要があります。

要するに、ミドルウェア全体でインターフェースメンバーの継承は可能ですか? もしそうなら、CORBAで、何か推奨事項はありますか? 別のミドルウェアの場合、どのミドルウェアですか?

4

1 に答える 1

0

変更を加えることなく、CORBA で必要なことはすべて行うことができます。CORBA は、この種のポリモーフィズムを実現するように設計されています。ただし、CORBA ではクライアント部分とサーバー部分が分離されているため、get メソッドと set メソッドをサーバーに実装する必要があることを考慮してください。クライアントに関しては、実装オブジェクトへのリモート呼び出しを引き起こす get および set メソッドのみを使用します。

于 2011-06-06T23:45:39.243 に答える