我只是想知道客户端是否必须知道服务器上对象的实际实现。我认为客户端只需要知道服务器上对象的接口。
示例(在服务器端):
public class AccountImpl implements Account {
//lots of Code
}
public class AccountManagerImpl implements AccountManager {
public Account login() {
return new AccountImpl();
}
}
在客户端:
AccountManager accMan = (AccountManager) registry.lookup("accMan");
Account myAccount = accMan.login();
因此客户端具有接口Account。他是否也需要了解AccountImpl类的实现?由于每个用户都应该拥有自己的帐户,因此我不认为我可以导出并将其绑定到注册表......这通常是如何完成的?
提前致谢
答案 0 :(得分:1)
没有。客户端仅使用远程接口。需要部署到客户端的类仅包括远程接口本身及其依赖的任何类,以此类推,直到关闭。如果您正在生成1.5之前的存根,则还需要部署它们,或者通过RMI代码库功能使其可用。
您不需要将帐户绑定到注册表。您在此处发布的内容已经有效。