设计模式之——代理模式
- 代理模式定义
代理模式为另一个对象提供一个替身或占位符以控制对这个对象的访问。
代理模式有很多的变体,远程代理只是其中的一种实现,使用代理模式创建代表对象,让代表对象控制某对象的访问,被代理的对象可以是远程的对象(远程代理),创建开销大的对象(虚拟代理)或需要安全控制的对象(保护代理) RMI简介
RMI为远程调用提供了客户辅助对象(stub)和服务辅助对象(skeleton),为客户辅助对象创建和服务对象相同的方法,RMI的好处在于你不必亲自写任何网络或I/O代码,客户程序调用远程方法就和在运行在客户自己的本地JVM上对对象进行正常方法调用一样,制作一个远程服务
1、制作远程接口
远程接口定义出可以让客户远程调用的方法,客户将用它作为服务的类类型,stub和实际的服务都实现此接口。
扩展java.rmi.Remote接口,这是一个记号接口,并不具备方法,声明所有的方法都会抛出RemoteException,来处理实现远程调用时可能出现的风险.
public interface MyRemote extends Remote{
public String sayHello() throws RemoteException;
}
确定变量和返回值都属于原语类型(字符串,数组,集合等)或者可序列化类型(实现serializable接口的自定义对象)2、制作远程的实现
这是做实际工作的类,为远程接口中定义的远程方法提供真正的实现,这就是客户真正想要调用方法的对象。
public class MyRemoteImpl extends UnicastRemoteObject implement