代理模式
介绍
代理模式用于提供一个代理对象,并由代理对象控制对原对象的访问
角色
- Subject(抽象主题角色):声明了真实主题和代理主题的共同接口
- Proxy(代理主题角色):包含对真实主题的引用,提供与真实主题相同的接口;通常在代理对象中客户端在调用所引用的真实对象方法之前或之后还需要执行某些操作
- RealSubject(真实主题角色):实现了真实的操作业务
示例代码
//抽象主题对象
public abstract class Subject {
public abstract void request();
}
//真实主题对象
public class RealSubject extends Subject {
@Override
public void request() {
System.out.println("真实主题业务方法");
}
}
//代理对象
public class Proxy extends Subject {
private RealSubject realSubject = new RealSubject();
@Override
public void request() {
preRequest();
realSubject.request();
postRequest();
}
private void preRequest() {
System.out.println("代理对象preRequest()");
}
private void postRequest() {
System.out.println("代理对象postRequest()");
}
}
//客户端
public class Client {
public static void main(String[] args) {
Proxy proxy = new Proxy();
proxy.request();
}
}