结构图
模式说明
类设计
模式说明
- 扩展点在Subject的实现类RealSubject中的方法。
- Proxy类把Subject实现类封装在类里面,但暴露出的接口和Subject一致。
- 客户端不需要知道Proxy具体使用的是哪一个Subject实现类。
- 为其他对象提供一种代理以控制对这个对象的访问。
public static void main(String[] args) {
Proxy proxy = new Proxy();
proxy.request();
}
类设计
public interface Subject {
public void request();
}
public class RealSubject implements Subject {
@Override
public void request() {
System.out.println("request real subject");
}
}
public class Proxy implements Subject {
private RealSubject realSubject;
@Override
public void request() {
if (realSubject == null) {
realSubject = new RealSubject();
}
realSubject.request();
}
}