【发布时间】:2011-09-30 15:00:52
【问题描述】:
在一个对话框(窗口)中,假设我们有一些按钮,当一个按钮被按下时,就会发生远程方法调用。
如何更好:
创建一次远程对象 (registry.lookup()) 并在每次需要远程方法调用时使用该对象?
每次需要远程方法调用时,我们执行registry.lookup(),然后调用远程方法?
【问题讨论】:
在一个对话框(窗口)中,假设我们有一些按钮,当一个按钮被按下时,就会发生远程方法调用。
如何更好:
创建一次远程对象 (registry.lookup()) 并在每次需要远程方法调用时使用该对象?
每次需要远程方法调用时,我们执行registry.lookup(),然后调用远程方法?
【问题讨论】:
只需进行一次查找,然后在某处缓存对远程对象的引用。 rmiregistry 仅用于引导。每次都进行查找会导致大量不必要的网络调用。
ServiceLocator 模式谈到了它:
服务定位器模式集中了分布式服务对象 查找,提供一个集中的控制点,并且可以作为一个 消除冗余查找的缓存。
【讨论】: