head first Design Pattern Proxy
客户对象-客户辅助对象-服务辅助对象-服务对象 RMI提供了客户辅助对象和服务辅助对象,自己不用写网路或IO代码,客户程序调用远程方法就和在运行本地JVM上对对象进行正常方法调用一样。RMI提过了查找服务用来寻找和访问远程对象。 制作远程服务:1. 制作远程接口:定义可以让客户远程调用的方法,客户将它用作服务的类类型。扩展java.rim.Remote 用远程接口扩展Remote这个接口 public interface MyRemote extends Remote{ //每次远程方法调用都必须考虑“有风险的”。在每个方法中声明RemoteException,可以让客户注意到这件事。 public String sayHello() throws RemoteException; 确定变量和返回值是属于原语(primitive)类型还是可序列化(Serializable)类型,因为远程方法的变量必须被打包并通过网络运送,要靠序列化来完成,如果使用原语类型、字符串和许多API中内定的类型(包括数组和集合)都不会有问题,但是对于自己定义的类,就必须保证你的类实现了Serializable。 } 2. 制作实际的工作类,实现远程接口 public class MyRemoteImpl extends UnicastRemoteObject implements MyRemote {