Proxy模式¶
代理模式是一种常用的结构型设计模式,它为目标对象创建一个代理对象,以控制对目标对象的访问。代理对象可以起到以下作用:
- 延迟加载: 延迟对象的创建,直到真正需要使用时才创建。
- 缓存: 将对象的副本缓存起来,以提高访问速度。
- 访问控制: 限制对对象的访问权限。
- 日志记录: 记录对象的访问和操作日志。
代理模式可以应用于以下场景:
- 远程代理: 在分布式系统中,可以为远程对象创建代理对象,以减少网络通信开销。
- 虚拟代理: 在图形界面中,可以为图像创建代理对象,以延迟图像的加载,直到图像真正需要显示时才加载。
- 保护代理: 可以为敏感对象创建代理对象,以控制对对象的访问权限。
- 缓存代理: 可以为经常访问的对象创建代理对象,以提高访问速度。
Java¶
interface Subject {
void request();
}
class RealSubject implements Subject {
@Override
public void request() {
System.out.println("RealSubject request");
}
}
class ProxySubject implements Subject {
private RealSubject realSubject;
public ProxySubject() {
this.realSubject = new RealSubject();
}
@Override
public void request() {
System.out.println("ProxySubject request");
realSubject.request();
}
}
public class Main {
public static void main(String[] args) {
Subject subject = new ProxySubject();
subject.request();
}
}