我清楚地知道CORBA和RMI之間的區別,除了存在in
,out
,inout
的問題。CORBA和RMI的區別
CORBA使用IDL語言來描述接口,並且所定義的方法中的參數具有關鍵字:in
,out
,inout
。它們的含義如下:
in
:該參數從操作的調用者傳遞給對象。out
:參數從對象傳遞給調用者。inout
:參數在雙向傳遞。
我的問題:爲什麼是必要的,但CORBA沒有必要在JAVA/RMI的關鍵字(in
,out
和inout
)。
我清楚地知道CORBA和RMI之間的區別,除了存在in
,out
,inout
的問題。CORBA和RMI的區別
CORBA使用IDL語言來描述接口,並且所定義的方法中的參數具有關鍵字:in
,out
,inout
。它們的含義如下:
in
:該參數從操作的調用者傳遞給對象。out
:參數從對象傳遞給調用者。inout
:參數在雙向傳遞。我的問題:爲什麼是必要的,但CORBA沒有必要在JAVA/RMI的關鍵字(in
,out
和inout
)。
這僅僅是一個設計決定。他們設計的主要區別在於,CORBA被設計爲獨立於平臺和編程語言,但是RMI專爲Java編程語言而設計。
許多編程語言都有自己的方式來表示in
,out
或inout
參數方向,其中語言CORBA IDL具有其直接的等價性。在其他語言(例如Java)中,這些結構必須用複雜的包裝結構來實現。
Java編程語言沒有out
或inout
參數(儘管它可以通過創建一個簡單的數值包裝類來實現),所有參數都通過了價值in
(值類型)或引用(引用類型) 。而且由於Java本身不支持語言級別的參數指示,所以在RMI中也沒有必要這樣做。
但在JAVA/RMI中不是必需的。
它們在Java中不可用,更不用說Java RMI。設計師們決定通過價值傳遞一切。
這些關鍵字在IDL中不是可選的。如果在具有參數的IDL接口中編寫函數,則必須指定in,out或inout。 – 2013-03-07 01:40:27
@BrianNeal感謝您的糾正。 – EJP 2013-03-08 22:22:25
RMI中只有參數。 – DwB 2013-03-04 18:12:16
* Java中只有'in'參數。* – EJP 2013-03-05 00:41:03