考虑在 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
- 向上转换为基类“报价”,填写符号
- 使用“sendQuote”通过 CORBA 接口发送
- 在接收端,向下转换到 SpecialQuote 以检索 specialSymbol
我很难执行此操作,因为属性本质上只是转换为 Java 中的空设置器/获取器,而不是它们的原始数据类型。因此它需要客户端和服务器端重新实现setter/getter。
简而言之,接口成员的继承可以跨中间件吗?如果在 CORBA 中是这样,有什么建议吗?如果在另一个中间件中,是哪个?