zoukankan      html  css  js  c++  java
  • Java基础加强-代理

    /*代理*/
    /*代理的概念与作用*/
    代理过程架构
    客户端Client原来直接调用的是Target目标类
    使用代理后,现在让客户端不要调用Target,调用代理类Proxy,代理类Proxy和目标类Target实现了相同的接口,也就是说对外有相同的方法
    在客户端调用程序的时候,不是直接引用目标,也不是直接引用代理,而是用这个接口来进行引用 如:Collection引用HashSet,引用ArrayList


    //调用代理对象的方法时,方法内部将objProxy对象,方法名,方法参数传递给handler的Invoke方法,
    //handler中的Invoke方法执行,然后,在该方法中,执行Target目标类的和代理对象调用的方法同名的方法
    另外:代理类对于从Object继承的方法,只对hashCode,equals和toString这三个方法委托给Handler去处理
    对于其他方法,不会去委托,而是自己处理,如这里的getClass方法,所以最后结果是代理类相关的对象,而不是和目标类相关的对象


    /*编写可生成代理和插入通告的通用方法*/
    /*实现类似Spring 的 可配置的AOP框架*/
    1.工厂类BeanFactory负责创建目标类或代理类的实例对象,并通过配置文件实现切换。其getBean方法根据参数字符串返回一个相应的实例对象,
    如果参数字符串在配置文件中对应的类名不是ProxyFactoryBean,则直接返回该类的实例对象,否则,返回该类实例对象的getProxy方法返回的对象
    2.BeanFactory 的构造方法接收代表配置文件的输入流对象
    3.ProxyFactoryBean充当封装生成动态代理的工厂,需要为工厂类提供哪些配置参数信息(目标,通知)
    4.编写客户端应用:1.编写实现Advice接口的类在配置文件中进行配置 2.调用BeanFactory获取对象

  • 相关阅读:
    车厢重组
    军事机密
    士兵站队
    归并排序
    输油管道
    冒泡排序
    快排
    烦人的幻灯片(确实烦人啊)
    奖金(类拓扑排序)
    能量项链
  • 原文地址:https://www.cnblogs.com/xuzekun/p/7354655.html
Copyright © 2011-2022 走看看