jdk动态代理(暂)

来源:互联网 发布:红枣泡水 知乎 编辑:程序博客网 时间:2024/05/17 21:42

 

 

代理模式:

假设有一个类A(实现了InterfaceOne接口),现在再定义一个类AProxy。

如果需要访问A的某个方法,则通过访问AProxy中特定方法,由AProxy中的方法(不一定和A的方法对应)来调用A中的相应方法,即AProxy 是A的代理。

 

jdk的动态代理(Proxy):

即jdk提供了Proxy这个类,实现代理模式。即把 AProxy 和 A绑定起来,当要访问A的时候,自动先访问AProxy。

 

使用方法:

A a = new A();

AProxy a_proxy = new AProxy();

InterfaceOne itf1 =(InterfaceOne ) Proxy.newProxyInstance(a.getClassLoader, a_proxy.getInterfaces,a_proxy),

 

itf1.func(); // 调用相应的方法之后,就会进入动态代理的invoke之中.

 

我个人对动态代理中动态的理解是:动态即在java.reflect.Proxy可以绑定  代理类(实现InvocationHandler接口) 和 被代理类.

这种绑定是不需要在编码的时候就写死,而是在运行时进行绑定.!

 

 

代码````````````

原创粉丝点击