美文网首页
谈谈Java的动态代理

谈谈Java的动态代理

作者: 在彼处 | 来源:发表于2018-11-25 11:25 被阅读0次

    动态代理机制的设计的目的是解耦,在很多类中,一个函数需要重复写,如果每个类中都有该函数,造成代码的耦合,单独提出来之后,这个时候很多类可以直接调用,则这几个类又和特定的方法耦合了,可以用动态代理解耦合;

    jdk的动态代理只能为接口创建动态代理;

    newProxyInstance方法,直接可以创建一个动态代理对象,该代理对象的实现类实现了interfaces指定的系列接口,执行动态代理对象的每个方法时都会被替换执行InvocationHandle对像的invoke方法

    接口实现的方法

    在该程序中,Dog是个接口,接口中有三个方法,传统方法中,创建一个Dog对象时候需要new Dog()的形势才能创建出来,现在通过动态代理机制,直接创建一个动态代理对象出来,通过

    Dog dog = new GunDog();

    Dog dog1 = (Dog) MyProxyFactory.getProxy(dog);

    //执行具体方法的时候都会去调用IncocationHandler中的invoke()方法,可以在invoke()方法中定义一些其他方法实现其他方法

    dog1.info();//直接调用

    dog1.run();//直接调用

    dog1.bark("哈哈");

    相关文章

      网友评论

          本文标题:谈谈Java的动态代理

          本文链接:https://www.haomeiwen.com/subject/sdsveftx.html