代理模式 : Proxy
为实例对象提供一个代理对象,由代理对象控制实例对象的操作。
代理模式/Proxy
代理模式中有 Subject
接口, ProxySubject
代理类, RealSubject
实例类。
Subject
接口 : 表示实例类中的方法RealSubject
实例类 : 实现Subject
接口的方法,构成类ProxySubject
代理类: 包含RealSubject
实例类,封装其方法并对外开放
实现代码:
public abstract class Subject {
// 声明一个抽象的请求方法
public abstract void handle();
}
public class RealSubject extends Subject {
@Override
public void handle() {
System.out.println("RealSubject");
}
}
public class ProxySubject extends Subject{
RealSubject realSubject = new RealSubject();
@Override
public void handle() {
preHandle();
realSubject.request();
afterHandle();
}
private void preHandle() {
}
private void afterHandle() {
}
}
在代理模式中,代理类的handle()
方法 在调用实例类 handle()
前后会进行其他方法处理。