代理模式
1.定义
为其他对象提供一种代理,以控制对这个对象的访问。
2.示例代码
/*抽象目标接口*/ public interface Subject{ //抽象请求接口 public void request(); } /*具体目标对象*/ public class RealSubject implements Subject{ public void request(){ System.out.println("正在处理被代理对象请求..."); } }
/*代理对象*/ public class Proxy implements Subject{ /*持有被代理目标对象*/ public RealSubject realSubject = null; public Proxy(RealSubject realSubject){ this.realSubject = realSubject ; } public void request(){ //1.在转调目标对象之前,可以执行一些功能处理 System.out.pringln("代理对象处理"); //2.调用具体对象 realSubject.request(); } }
3.实际应用
代理模式在客户和被客户访问的对象之间,引入了一定程度的间接性,客户直接使用代理,让代理来与被访问的对象直接进行交互,这种附加的间接性有不同的用途,如远程代理、虚代理、保护代理、智能引用。
代理模式的本质:控制对象访问