1.为什么要写这篇博客
因为,平时我们看见的代理模式的讲解不是基于jdk的就是基于cglib,然而这篇文章是通过java原生代码讲解的代理模式的实现原理,更利于大家理解代理模式。
2.什么是代理模式
为其他对象提供一种代理以控制对这个对象的访问。
3.代理模式结构图
4. 代码实现
public interface Subject {
public void request();
}
class RealSubject implements Subject {
@Override
public void request() {
System.out.println("真实请求");
}
}
class Proxy implements Subject {
private RealSubject realSubject;
@Override
public void request() {
if (realSubject == null) {
realSubject = new RealSubject();
}
realSubject.request();
}
}
public class Main {
public static void main(String[] args) {
Proxy proxy = new Proxy();
proxy.request();
}
}
5.回顾总结
应用场景:
1.远程代理(webService、Rpc)
2.虚拟代理 虚拟代理_百度百科
3.安全代理 安全代理(代理机构)_百度百科