1.简单接口
public interface Subject{
Public void request();
}
2.被代理角色类
public class RealSubject implements Subject{
public RealSubject(){}
public void request(){
System.out.println("Hello World");
}
}
3.代理角色类
public class ProxySubject implements InvocationHandler{
// 必须实现invocationHandle接口,因此就需要实现invoke接口方法
private Object sub;
public ProxySubject (){}
public ProxySubject (Object obj){
this.sub = obj;
}
public Object invoke(Object proxy,Method method,Object[] args) throws Throwable{
method.invoke(sub,args);
return null;
}
}
4.客户端调用类
public class Client{
public static void main(String srgs[]){
RealSubject rs = new RealSubject();
InvocantionHandle ds = new ProxySubject(rs); // JAVA多态性
Class cls = rs.getClass();
Subject subject = (Subject) Proxy.newProxyInstance(cls.getClasssLoader,cls.getInterfaces(),ds);
subject.request();
}
}