一、代理模式的作用
远程代理:为一个对象在不同的地址空间提供局部代表,以此隐藏一个对象存在于不同地址空间的事实。
虚拟代理:根据需要创建开销很大的对象。通过它来存放实例化需要很长时间的真是对象。
安全代理:用来控制真实对象访问时的权限。
智能指引:当调用真实的对象时,代理处理另外一些事。
二、简单实现思路
abstract class Subject{ public abstract void request(); } class RealSubject extends Subject{ @Override public void request() { System.out.println("真实请求"); } } public class Proxy extends Subject{ RealSubject realSubject; @Override public void request() { if (realSubject==null){ realSubject=new RealSubject(); } realSubject.request(); } } class Client{ public static void main(String[] args) { Proxy proxy=new Proxy(); proxy.request(); } }