代理模式(Proxy):为其他对象提供一种代理以控制对这个对象的访问
下面是代理模式的UML图:
下面是实际代码的Demo:
定义一个接口或者是一个抽象类也行:
public interface Subject {
public void request();
}
被代理的类:
public class RealSubject implements Subject{
@Override
public void request() {
System.out.println("RealSubject");
}
}
代理类:
public class Proxy implements Subject{
private RealSubject realSubject;
public Proxy(RealSubject realSubject) {
this.realSubject = realSubject;
}
@Override
public void request() {
realSubject.request();
}
}
客户端的访问类Admin类:
public class Admin {
public static void main(String[] args) {
Proxy proxy = new Proxy(new RealSubject());
proxy.request();
}
}
从这个很容易的看出来,虽然调用的是Proxy类,但是里面的实现全是RealSubject的代码,从而实现了代理的模式