代理实现可以分为静态代理和动态代理, 下面使用jdk和cglib来分别说明。
静态代理
具体实现:
public interface Subject {
void request();
}
class RealSubject implements Subject {
public void request(){
System.out.println("Call RealSubject");
}
}
class Proxy implements Subject {
private Subject subject;
public Proxy(Subject subject) {
this.subject = subject;
}
public void request() {
System.out.println("begin");
subject.request();
System.out.println("end");
}
}
public class ProxyTest {
public static void main(String args[]) {
RealSubject subject = new RealSubject();
Proxy p = new Proxy(subject);
p.request();
}
}