代理模式是一种结构型设计模式,它允许你提供一个代理对象来控制对另一个对象的访问。代理对象可以在访问实际对象之前或之后执行一些操作,例如控制访问权限、延迟初始化、记录日志等。
定义接口
java
public interface Subject {
void request();
}
创建真实对象
java
public class RealSubject implements Subject {
@Override
public void request() {
System.out.println("RealSubject: Handling request.");
}
}
创建代理对象
java
public class Proxy implements Subject {
private RealSubject realSubject;
@Override
public void request() {
if (realSubject == null) {
realSubject = new RealSubject();
}
System.out.println("Proxy request");
realSubject.request();
}
}
使用代理对象
java
public class ProxyPatternDemo {
public static void main(String[] args) {
Subject proxy = new Proxy();
proxy.request();
}
}