其实虚拟代理非常简单,在需要的时候才初始化主题对象,可以避免被代理对象过多而引起的初始化缓慢的问题,其缺点是需要在每个方法中判断主题对象是否被创建,这就是虚拟代理
虚拟代理的实现类:
public class Proxy implements Subject {
//要代理哪个实现类
private Subject subject;
//实现接口中定义的方法
public void request () {
if(subject == null) {
subject = new RealSubject ();
}
subject.request();
}
}