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
通过使用代理对象,我们可以在实际对象的处理前后添加额外的逻辑或处理操作,从而实现请求的转发。