最近在学习Java中的设计模式,在代理模式中有一种远程代理,它是通过RMI来实现的。
1、作用
RMI是通过网络使得本地对象能够方便地远程对象的方法,使得本地对象调用远程对象的方法跟调用本地对象的方法一样。
2、 调用过程
如上图,客户端中的客户对象调用服务端服务对象的方法A(),其过程是:
(1) 客户对象调用远程对象的方法A();
(2) 客户辅助对象将请求进行包装,通过网络发送到服务端的服务辅助对象;
(3) 服务辅助对象将请求进行解析,调用服务对象的A()方法;
(4) 得到返回值后,服务辅助对象将返回值进行包装,通过网络发送给客户辅助对象;
(5) 客户辅助对象收到后进行解释,最后将结果传给客户对象。
这就是远程方法调用的一个基本过程。客户对象并不知道其结果是通过网络请求服务对象才返回的结果,对于服务对象来时,这跟调用本地方法是一样的。
3、 实例
(1) 设计
MyRemoteImpl类是服务类,MyRemoteClient是客户类,它们都实现了共同的接口MyRemote。
(2) 源码
MyRemote类
import java.rmi.Remote;
import java.rmi.RemoteException;
public interface MyRemote extends Remote
{
public String