代理模式(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();
}
}
这样在需要真实实体的地方,只需要通过代理的调用即可传递给真实实体动作。