package proxy; /* * 代理模式:把原对象(被代理类)的一些功能交给代理类处理 * * 安全代理:屏蔽真实角色的直接访问 * 远程代理:通过代理类处理远程方法调用RMI * 延迟加载:先加载轻量级代理对象,需要时通过代理对象再加载真实对象 * 动态生成代理类( 需要反射 ),静态生成代理类 * * */ public class ProxyTest { public static void main(String[] args) { Server server = new Server(); //1.把真实服务器交给代理类 ProxyServer proxyServer = new ProxyServer(server); //2.让代理类联网,实质上就是让真实服务器联网 proxyServer.browse(); } } interface NetWork{ public void browse(); } //被代理类 class Server implements NetWork{ @Override public void browse() { System.out.println("服务器访问网络"); } } //代理类 class ProxyServer implements NetWork{ private NetWork work; public ProxyServer(NetWork work) { this.work = work; } public void check() { System.out.println("联网前检查工作"); } @Override public void browse() { check(); work.browse(); } }