0


我在 Wikipedia 站点中查看代理模式:http
://en.wikipedia.org/wiki/Proxy_pattern 我了解一台计算机中的程序。
但我问我有关在 2 台计算机中实现的问题。
实际上,在“现实生活”中,我认为:
1)接口主题在客户端(计算机A)和服务器(计算机B)中以相同的名称重复=>我是对的吗?
2)Proxy类的对象在客户端(计算机A)
3)RealSubject类的对象在服务器(计算机B)
4)在Proxy类的构造函数中,创建了RealSubject的实例=>我是对的?
在第 4 点,如果我是对的,如何在计算机 A 中实例化位于计算机 B 中的类?
例如,如果 B 类是 Web 服务,你会怎么做?
我提前谢谢你。

4

1 回答 1

2

1)接口主题在客户端(计算机A)和服务器(计算机B)中以相同的名称重复=>我对吗? 是的,几乎总是。

2)类Proxy的对象在客户端(计算机A)

3) RealSubject 类的对象在服务器(计算机B)

4) 在类 Proxy 的构造函数中,创建了 RealSubject 的一个实例 => 我对吗? 在构造函数中或通过任何其他方式,可能 RealSubject 已经创建,您所要做的就是获取对它的引用。

“[...] 代理可以在不更改对象代码的情况下为感兴趣的对象添加额外的功能。” 来自维基百科。

为了调用 Web 服务,您只需拥有一个 Web 服务代理,它将封装对 WS 的调用。

就像是:

class WebServiceProxy {

   private WebService ws;

   public doWSAction() {
     // Here you make the call to the actual web service: setup parameters, check security etc, whatever you need . 
     ...
     // then you call the actual web service:
     ws.doWSAction() 

   }

}

因此,需要 Web 服务的人将只使用您的本地类,而不必执行与您在方法中执行的调用相关的所有事情。

于 2014-10-30T11:42:20.627 回答