代理模式(Proxy):对其它对象提供一种代理,以控制对这个对象的访问!
package caosc.javaModel.Proxy;
public abstract class Subject {
public abstract void Request();
}
package caosc.javaModel.Proxy;
public class RealSubject extends Subject {
@Override
public void Request() {
System.out.println("真实的请求!");
}
}
package caosc.javaModel.Proxy;
public class Proxy extends Subject {
RealSubject rsb;
@Override
public void Request() {
if(null==rsb){
rsb = new RealSubject();
}
rsb.Request();
}
}
package caosc.javaModel.Proxy;
public class TestProxy {
public static void main(String[] args) {
Proxy p = new Proxy();
p.Request();
}
}
代理模式应用:
1、远程代理,为一个对象在在不同的地址空间提交局部代表,这样隐藏一个对象在不同地址地址控件的真实;
2、虚拟代理,创建开销很大的对象,用它来存放需要实例化很长时间的对象,比如网页图片加载优化;
3、安全代理,用来控制对象访问时的权限;
4、智能指引,当调用真实对象时候,代理处理另外一些事情,比如当第一次引用一个持久化对象时候将对象放入内存;或者在访问一个对象的时候,检查是否锁定,都是通过在访问一个对象的时候,增加一些内务事物;