Javaでプロキシ転送リクエストを実装する方法
Javaでは、Javaによって提供される設計パターンの1つである「委任パターン」を使用することで、リクエストの転送を行うことができます。委任パターンは、プロキシオブジェクトと実際のオブジェクトの間に中間層を追加することで、実際のオブジェクトにアクセスできるようにする構造設計パターンです。
以下に簡単な実装例を示します。これは、プロキシを使用してリクエストの転送を行う方法を示しています。
まず、リクエスト処理のメソッドを定義したインタフェース RequestHandler を作成しましょう。
public interface RequestHandler {
void handleRequest(String request);
}
そこで、RequestHandlerインタフェースを実装する実際に用いるオブジェクトRealRequestHandlerを作成します。
public class RealRequestHandler implements RequestHandler {
@Override
public void handleRequest(String request) {
System.out.println("处理实际请求:" + request);
}
}
次に、実際のオブジェクトへの参照を保持し、RequestHandler インターフェイスを実装した ProxyRequestHandler というプロキシ オブジェクトを作成します。
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
处理实际请求:请求1
プロキシオブジェクトを利用することで、実際のオブジェクトの処理の前後など、リクエストの転送タイミングで追加のロジックや処理を挟み込むことが可能です。