zoukankan      html  css  js  c++  java
  • JDK动态代理理解精髓

     
    1.Java动态代理的关键是:Proxy类要和InvocationHandler的接口实现类,要用同一个目标target对象class,所以精髓是InvocationHandler和Proxy是一一绑定的,是配对的。
    2.所以精髓是InvocationHandler和Proxy是一一绑定的,是配对的。
    3.所以精髓是InvocationHandler和Proxy是一一绑定的,是配对的。
    4.所以精髓是InvocationHandler和Proxy是一一绑定的,是配对的。
     
    5.再创建动态代理,针对不同的target对象拦截,只需要保证proxy和invocation的参数是成对的,是匹配的,同一个即可。那么这套Proxy和Invocation就可以复用。
     
    5 代理类:程序执行时真正执行的是代理类,代理类是实现了拦截器的流程的类。
    package com.lanvis.reflect;
    import java.lang.reflect.Proxy;
    public class MyProxy {
        public Object getProxy(Object object) {
            MyHandler myHandler = new MyHandler();
            myHandler.setObject(object);
            return Proxy.newProxyInstance(object.getClass().getClassLoader(),
                    object.getClass().getInterfaces(), myHandler);
        }
    }
    6 测试类:用来测试拦截器成功与否。
    package com.lanvis.reflect;
    public class Test {
        public static void main(String[] args){
            ITarget target=new Target();
            MyProxy myProxy=new MyProxy();
            ITarget proxy=(ITarget)myProxy.getProxy(target);
            proxy.doSthing();
            proxy.doOthing();
        }
    }
  • 相关阅读:
    UESTC_王之迷宫 2015 UESTC Training for Search Algorithm & String<Problem A>
    UESTC_The Most Wonderful Competition CDOJ 56
    UESTC_神秘绑架案 CDOJ 881
    MFC 自定义消息的一般过程
    MFC 如何添加自定义消息
    MFC子窗口向父窗口发送消息
    MFC子窗口和父窗口
    单链表
    C++ STL基本容器的使用
    C++ Primer 3rd 读书笔记
  • 原文地址:https://www.cnblogs.com/panxuejun/p/7753844.html
Copyright © 2011-2022 走看看