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();
}
}