客户端是否必须具有所有实现或仅具有接口?
详细说明:让我们有远程接口 Foo:
public interface Foo extends Remote {
FooMessage getFooMessage () throws RemoteException;
void setFooMessage (FooMessage fm) throws RemoteException;
}
客户端和服务器之间的通信是通过 FooMessage 进行的。
public interface FooMessage {
String getMsg ();
void setMsg (String str);
}
客户端很简单:
public void clientCode () {
Foo foo = (Foo)Naming.lookup ("rmi://localhost/FooService");
FooMessage msg = foo.getFooMessage ();
msg.setMsg ("asdf");
foo.setFooMessage (msg);
}
Foo 和 FooMessage 都应该在服务器端有具体的实现。问题是:客户端也应该有这些实现还是 RMI 机制隐式传输实现?