Рассмотрим очень простой код IDL, который задает базовый и производный интерфейс в CORBA:
module test{
interface Quote{
attribute string symbol;
};
interface SpecialQuote:Quote{
attribute string specialSymbol;
};
interface QuoteSender{
void sendQuote(in Quote stock_quote);
}
};
(Предполагается, что CORBA, но должно быть аналогичным для другого промежуточного программного обеспечения). Я заинтересован в возможности:
- создать производный класс «SpecialQuote», заполнить specialSymbol
- upcast до базового класса "Цитата", заполните символ
- отправка через интерфейс CORBA с использованием «sendQuote»
- на приемном конце, вниз к SpecialQuote, чтобы получить specialSymbol
Мне трудно это сделать, потому что атрибуты по сути просто переводятся в пустые установщики / получатели в Java, а не в их примитивные типы данных. Таким образом, требуется, чтобы стороны клиента и сервера повторно внедрили установщики / получатели.
Короче говоря, возможно ли наследование интерфейса членов через промежуточное ПО? Если так в CORBA, какие-нибудь рекомендации? Если в другом промежуточном программном обеспечении, какой?