0
我正在閱讀一本關於設計模式的書,並試圖在我的一個應用程序中實現代理模式,特別是遠程代理。實現遠程代理
我正在考慮在查詢遠程REST API時使用這種模式,但我不確定自己正在考慮的是否滿足遠程代理的定義。
以下是我到目前爲止的簡化版本。
MachineApiProxy將被應用程序用於查詢位於另一臺計算機上的遠程API。
// Interface
public interface MachineApi
{
public Integer Infocon();
public InetAddress Ip();
}
// Implements above interface
public class MachineApiProxy implements MachineApi
{
public Integer Infocon()
{
// query remote REST API
}
public InetAddress Ip()
{
// query remote REST API
}
}
您認爲這滿足實現遠程代理嗎?
我不明白我可以如何將其應用於調用遠程API。 Subject和RealSubject有什麼區別?主題只是使用RealSubject來調用API,而我的應用程序中需要調用API的任何內容都會經過主題? –
在RealSubject中實現「調用遠程API」,可以使用更直觀的名稱,如RemoteSubject或RemoteMachineApi。 RealSubject實現Subject,但Proxy保持對RealSubject的引用。通過這種方法,代理服務器在客戶端和RealSubject(一個surogate)之間就存在障礙,因此客戶端不知道誰是RealSubject。檢查此鏈接https://dzone.com/articles/design-patterns-proxy,希望解釋有幫助。 – dstar55
代理在SpringFramework內部用於AOP,intercetors等 – dstar55