读书人

初学者硕枫设计模式系列之13 代理模式

发布时间: 2012-08-29 08:40:14 作者: rapoo

菜鸟硕枫设计模式系列之13 代理模式二(动态代理)
java中的动态代理都需要实现一个实现了InvocationHandler接口的代理类,在该类中需要实现invoke方法,并且需要注入你想要代理的目标类对象实例。然后就可以对想要代理的方法进行操作了。

动态代理类图:


具体demo示例:
对象接口



动态代理:
package invokeProxy;import java.lang.reflect.InvocationHandler;import java.lang.reflect.Proxy;public class DynamicProxyTest {public static void main(String[] args){Man man = new Man("lxy");InvocationHandler dynamicProxy = new DynamicProxy(man);Class<?> clazz = man.getClass();  //三个参数都不能为空  也就是说被代理类必须有实现某一接口,而且有动态代理对象Person person = (Person) Proxy.newProxyInstance(clazz.getClassLoader(),clazz.getInterfaces(),dynamicProxy);person.work();person.play();}}


说明:代理模式是设计模式的重要模式之一,动态代理模式又是java最重要特性反射的示例demo,要重点掌握哈。迭代器模式,观察者模式,三大工厂模式,外观模式是设计模式务必掌握的几个模式。

读书人网 >软件开发

热点推荐