代理模式 Proxy
为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用
案例
创建一个 Subject 接口类
package com.learn.Proxy;
public interface Subject {void Request();
}
真实主题,也就是被代理的对象
package com.learn.Proxy;
public class RealSubject implements Subject{
@Override
public void Request() {System.out.println(" 访问真实主题方法...");
}
}
代理类
package com.learn.Proxy;
public class Proxy implements Subject{
private RealSubject realSubject;
@Override
public void Request() {if (realSubject == null) {realSubject = new RealSubject();
}
preRequest();
realSubject.Request();
postRequest();}
public void preRequest() {System.out.println(" 访问真实主题之前的预处理...");
}
public void postRequest() {System.out.println(" 访问真实主题之后的处理...");
}
}
客户端
package com.learn.Proxy;
public class Client {public static void main(String[] args) {Proxy proxy = new Proxy();
proxy.Request();}
}
正文完