RMI的基本优点:面向对象:RMI能够将任何对象作为参数和返回值,而不仅仅是java预先定义好的那些类型。这意味着你能够直接传递任何java类型,比如说直接将一个java hashtable对象作为参数传递。如果是在现有RPC的系统中,你将不得不在客户端将这样一个对象分解为java数据基本类型,传到服务器端后,再重建一个hashtable类型。可传递对象:RMI能够实现从客户端到服务器端或者从服务器端到客户端对象(接口的实现)的传递。比如,你可以定义一个接口来考察雇员的开支报告,从而检测他们是否遵守当前的公司政策。当一个开支报告创建的时候,一个实现该接口的对象可能被客户端从服务器得到,而当政策改变的时候,服务器端将返回一个不同的对象,这个对象实现的是新的政策。这将提供你很大的灵活性,因为改变一个政策仅仅要求你写一个新的java类并把它安装到服务器的主机上。如果delphi和java相比没有如上功能,那么delphi在开发多层的面向对象系统的时候也太有限了吧?请各位指教!!

解决方案 »

  1.   

    但java在做Client処理上不如delphi。
      

  2.   

    既然delphi存在这种缺陷,那么delphi在遇到需要传递对象的时候有没有弥补的办法
      

  3.   

    肯定可以啊。比如用SOAP协议,就是简单对象传递嘛,不过我不太明白
      

  4.   

    在三层开发可以传递COM组件对象,你必需把对象封装成COM才行。
      

  5.   

    为什么不能传递对象,要实现传递对象比较简单的啊,你可以将一个对象序列化后(序列化的格式由你决定,如XML之类的流行格式)再进行传递,相比之下需要做的工作其实也不是很多。另外如果你不想传递对象,你也可以通过接口对对象进行远程访问啊(如DCOM,所有的传递和代理工作将由COM底层为你完成,你要关心的内容就更少了).
      

  6.   

    关注对象序列化技术,在C#中对象序列化只要添加一个指示字即可。Delphi不知道如何实现。COM传递的数据类型有限,要传递自定义结构,可以对其进行Marshalling.
      

  7.   

    当然可以了 hehe^^  这就是你不了解 Delphi 了用Delphi最起码有两种方式可以实现DCOM和Corba... 不知道说的对不对哈~~ 汗~~