我很难找到这个问题的明确答案,所以我想在这里用我自己的具体例子来问:
我正在创建一个多玩家垄断游戏。实际的独占代码运行在服务器上,客户端本质上是一个访问和控制该代码的GUI。垄断游戏由一个名为“银行”的阶级控制。
假设我在我的客户的主()中这样做:
Bank banker = server.getBank(); //gets the bank object from server
bank.turn(); //moves the current player这个调用是在服务器上的Bank对象上转()还是在我的本地机器上调用它的副本?
更新:银行不实现远程。它是一个可序列化的对象。
发布于 2010-06-21 19:25:04
这取决于Bank是否是Remote的实例。如果是的话,那么它将通过引用传递(如果所有设置都是正确的),如果没有,它将被序列化并通过值传递。
编辑:由于您的Bank类不是Remote,而是Serializable,所以它将被复制并通过值传递。
发布于 2010-06-21 19:26:51
这取决于你是如何编码它的。
通常,表示服务器端对象的任何客户端对象只需使用更新服务器端对象进行远程调用。客户端对象不过是用于调用服务器的传输协议的外观。
如果您使用RMI,那么它将遵循这一原则。
https://stackoverflow.com/questions/3087756
复制相似问题