动态代理它可以直接给某一个目标对象生成一个代理对象,而不需要代理类存在。动态代理与代理模式原理是一样的,只是它没有具体的代理类,直接通过反射生成了一个代理对象。
KindWoman
public interface KindWoman {
public void throwEye();
public void doSomething();
}
PJL
public class PJL implements KindWoman{
public void throwEye() {
System.out.println("PJL抛媚眼");
}
public void doSomething() {
// TODO Auto-generated method stub
System.out.println("PJL...");
}
}
XMQ
final KindWoman kw = new PJL();
//生成动态代理类
KindWoman proxy = (KindWoman) Proxy.newProxyInstance(kw.getClass()
.getClassLoader(), kw.getClass().getInterfaces(),
new InvocationHandler() {
public Object invoke(Object proxy, Method method,
Object[] args) throws Throwable {
return method.invoke(kw, null);
}
});
proxy.throwEye();
proxy.doSomething();