代理类Proxy与被代理类RealSubject依赖于同一个抽象Subject,所以可以在Proxy基础上对代理类的访问做一些额外的功能。
应用场合
远程代理:具体举例还没有想到。
虚拟代理:因为proxy代理类跟被代理类都依赖于同一个抽象,那么当被代理类加载时间过长,可以暂存让proxy代理类替代被代理类的位置,比如HTML中,页面并不是同一时刻所有图片同时加载,而是动态加载,那么在这个过程,没有加载的位置暂由代理类占着,当调用到代理类之后再去访问被代理类,可以做到一个优化。
安全代理:可以通过proxy在进行调用被代理类时候做一些访问的权限。也就是当A代理B,C想访问B,那么通过A代理类做一些对C的权限校验,放通B的某些成员,可以做到权限的分配。
智能指引:与安全代理的思想一样,也是代理类在被代理类的基础上加一些功能。
总结自:《大话设计模式》代理模式