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. 向上转换为基类“报价”,填写符号
  3. 使用“sendQuote”通过 CORBA 接口发送
  4. 在接收端,向下转换到 SpecialQuote 以检索 specialSymbol

我很难执行此操作,因为属性本​​质上只是转换为 Java 中的空设置器/获取器,而不是它们的原始数据类型。因此它需要客户端和服务器端重新实现setter/getter。

简而言之,接口成员的继承可以跨中间件吗?如果在 CORBA 中是这样,有什么建议吗?如果在另一个中间件中,是哪个?

4

1 回答 1

0

您可以在 CORBA 中完成您所要求的一切,而无需进行任何修改。CORBA 旨在实现这种多态性。但是,考虑到在 CORBA 中您有一个分离的客户端服务器部分,因此您必须在服务器中实现 get 和 set 方法。至于客户端,它只使用导致远程调用实现对象的get 和set 方法。

于 2011-06-06T23:45:39.243 回答