2013-03-04 40 views
1

我清楚地知道CORBA和RMI之间的区别,除了存在in,out,inout的问题。CORBA和RMI的区别

CORBA使用IDL语言来描述接口,并且所定义的方法中的参数具有关键字:in,out,inout。它们的含义如下:

  • in:该参数从操作的调用者传递给对象。
  • out:参数从对象传递给调用者。
  • inout:参数在双向传递。

我的问题:为什么是必要的,但CORBA没有必要在JAVA/RMI的关键字(inoutinout)。

+1

RMI中只有参数。 – DwB 2013-03-04 18:12:16

+0

* Java中只有'in'参数。* – EJP 2013-03-05 00:41:03

回答

0

这仅仅是一个设计决定。他们设计的主要区别在于,CORBA被设计为独立于平台和编程语言,但是RMI专为Java编程语言而设计。

许多编程语言都有自己的方式来表示in,outinout参数方向,其中语言CORBA IDL具有其直接的等价性。在其他语言(例如Java)中,这些结构必须用复杂的包装结构来实现。

Java编程语言没有outinout参数(尽管它可以通过创建一个简单的数值包装类来实现),所有参数都通过了价值in(值类型)或引用(引用类型) 。而且由于Java本身不支持语言级别的参数指示,所以在RMI中也没有必要这样做。

0

但在JAVA/RMI中不是必需的。

它们在Java中不可用,更不用说Java RMI。设计师们决定通过价值传递一切。

+0

这些关键字在IDL中不是可选的。如果在具有参数的IDL接口中编写函数,则必须指定in,out或inout。 – 2013-03-07 01:40:27

+0

@BrianNeal感谢您的纠正。 – EJP 2013-03-08 22:22:25