Java可以通過代理模式來實現請求的轉發。代理模式是一種結構型設計模式,它允許通過在代理對象和實際對象之間添加一個中間層來間接訪問實際對象。
下面是一個簡單的示例代碼,演示如何使用代理模式實現請求的轉發:
首先,創建一個接口 RequestHandler
,定義請求處理的方法:
public interface RequestHandler {
void handleRequest(String request);
}
然后,創建一個實際對象 RealRequestHandler
,實現 RequestHandler
接口:
public class RealRequestHandler implements RequestHandler {
@Override
public void handleRequest(String request) {
System.out.println("處理實際請求:" + request);
}
}
接下來,創建一個代理對象 ProxyRequestHandler
,實現 RequestHandler
接口,并在其中持有一個實際對象的引用:
public class ProxyRequestHandler implements RequestHandler {
private RealRequestHandler realRequestHandler;
public ProxyRequestHandler(RealRequestHandler realRequestHandler) {
this.realRequestHandler = realRequestHandler;
}
@Override
public void handleRequest(String request) {
System.out.println("代理處理請求:" + request);
// 在代理對象中可以添加額外的邏輯,如鑒權、日志等
realRequestHandler.handleRequest(request);
}
}
最后,測試代碼如下:
public class Main {
public static void main(String[] args) {
RealRequestHandler realRequestHandler = new RealRequestHandler();
ProxyRequestHandler proxyRequestHandler = new ProxyRequestHandler(realRequestHandler);
// 使用代理對象處理請求
proxyRequestHandler.handleRequest("請求1");
}
}
輸出結果為:
代理處理請求:請求1
處理實際請求:請求1
通過使用代理對象,我們可以在實際對象的處理前后添加額外的邏輯或處理操作,從而實現請求的轉發。