2014-10-29 87 views
0


實現我看在維基百科網站的代理模式:http://en.wikipedia.org/wiki/Proxy_pattern
我明白在一個計算機程序。
但我問我有關在2臺電腦實現的問題。
在現實生活中,我想:
1)在客戶端(計算機A)和服務器(計算機B)=>我是對嗎?
2)類的代理的目的是在客戶端(計算機A)
3)CLASSE RealSubject的目的是在服務器類代理的構造(計算機B)
4),RealSubject的一個實例是創建=>我是對的?
在第4點,如果我是正確的,如何在電腦A中實例化一個類,它位於計算機B中?
例如,如果B類是Web服務,你該如何做?
我提前感謝你。
代理設計模式

回答

1

1)在客戶端(計算機A)和服務器(計算機B)=>我是對嗎? 是的,幾乎總是。

2)類的代理的目的是在客戶端(計算機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() 

    } 

} 

因此,有人誰需要網絡服務將只使用本地類,而不必做所有 與你在你的方法是做呼叫的事情。

+0

MulţumescMatei。 – Thomas 2014-10-30 12:44:35

+0

MulţumescMatei。非常感謝Matei花時間回答我的問題並點亮我的大腦。 – Thomas 2014-10-30 12:45:42

+0

Matei,我想標記這個答案是有用的。但是我的名聲在15歲以下,因此我沒有權利將答案標記爲有用。 – Thomas 2014-10-30 12:54:40