2013-03-04 2 views
1

Я четко знаю разницу между CORBA и RMI, за исключением проблемы с наличием in, out, inout.Разница между CORBA и RMI

CORBA использует язык IDL для описания интерфейса, а параметры в указанных методах имеют ключевые слова: in, out, inout. Их значение следующее:

  • in: Параметр передается от вызывающего объекта операции к объекту.
  • out: Параметр передается от объекта к вызывающему.
  • inout: Параметр передается в обоих направлениях.

Мой вопрос: почему ключевые слова (in, out и inout), необходимые в CORBA, но не обязательно в JAVA/RMI.

+1

Только в параметрах в RMI. – DwB

+0

В * Java есть только параметры 'in'. * – EJP

ответ

0

Это просто дизайнерское решение. Основное отличие в их дизайне заключается в том, что CORBA разработан как независимый от платформы и языка программирования, но RMI разработан специально для языка программирования Java.

Многие языки программирования имеют собственный способ выражения in, out или inout параметров, в которых языки CORBA IDL имеют простой эквивалент. В других языках (например, Java) эти конструкции должны быть реализованы со сложными структурами обертки.

Язык программирования Java не имеет out или inout параметров (хотя она может быть реализована путем создания простого значения класса-оболочки), все параметры передаются in по значению (для типов значений) или ссылки (для ссылочных типов) , И поскольку сама Java не поддерживает указания параметров на уровне языка, в RMI также не обязательно иметь это.

0

, но не обязательно в JAVA/RMI.

Они не доступны на Java, не говоря уже о Java RMI. Дизайнеры приняли решение передать все по стоимости.

+0

Эти ключевые слова не являются необязательными в IDL. Если вы пишете функцию в интерфейсе IDL, у которого есть параметры, вы должны указать внутри, вне или inout. –

+0

@BrianNeal Спасибо за исправление. – EJP

Смежные вопросы