代理模式(Proxy)
为其他对象提供一种代理以控制对这个对象的访问。
第一种:远程代理,就是为一个对象在不同的地址空间提供局部代表。这样可以隐藏一个对象存在于不同地址空间的事实。
第二种:虚拟代理,是根据需要创建开销很大的对象。通过它来存放实例化需要很长时间的真是对象。(浏览器下载优化)
第三种:安全代理,用来控制真实对象访问时的权限。
第四种:智能指引,是指当调用真实的对象时,代理处理另外一些事。
代码,
/** * 接口定义 */ public interface ISubject { void getResult(); } import android.util.Log; /** * 主体类 */ public class RealSubject implements ISubject { private final static String TAG = RealSubject.class.getSimpleName(); @Override public void getResult() { Log.d(TAG,"主体请求"); } } import android.util.Log; /** * 代理类: * 保留一个真实实体的引用 */ public class ProxySubject implements ISubject { private final static String TAG = ProxySubject.class.getSimpleName(); private RealSubject mReal; public ProxySubject() { mReal = new RealSubject(); } @Override public void getResult() { Log.d(TAG,"代理者请求"); mReal.getResult(); } }这样在需要真实实体的地方,只需要通过代理的调用即可传递给真实实体动作。