代理模式
首先看代理模式,很简单,用代码呈现:
三个类:
接口 Subject
public interface Subject {
public void doSomething();
}
实际类 RealSubject
public class RealSubject implements Subject{
@Override
public void doSomething() {
System.out.println("realSubject do sth");
}
}
代理类 MySimpleProxy
public class MySimpleProxy implements Subject{
private Subject subject;
public MySimpleProxy(Subject subject){
this.subject = subject;
}
@Override
public void doSomething() {
subject.doSomething();
}
}
其中,代理类和实际操作类实现了相同的接口。
client类:
public class Client {
public static void main(String[] args) {
Subject realSubject = new RealSubject();
MySimpleProxy proxy = new MySimpleProxy(realSubject); //proxy代理了实际subject
proxy.doSomething();
}
}
java动态代理
而java的动态代理