A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© syusouki 中级黑马   /  2015-10-5 11:29  /  449 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

代理模式:                                                                                                       
        本来应该自己做的事情,却请了别人来做,被请的人就是代理对象。                                                                                               
                                                                                                       
动态代理:                                                                                                       
        在程序运行过程中产生的这个对象;而程序运行过程中产生对象其实就是我们刚才反射讲解的内容,所以,动态代理其实就是通过反射来生成一个代理对象.                                                                                               
                                                                                                       
在Java中java.lang.reflect包下提供了一个Proxy类和一个InvocationHandler接口,通过使用这个类和接口就可以生成动态代理对象。JDK提供的代理只能针对接口做代理。                                                                                                       
1.一般的代理模式,需要为原类增加"代理类",这样的话,代理类会越来越多;                                                                                                       
2.Java中的动态代理机制:                                                                                                       
          1).自定义类,实现一个InvocationHandler接口;重写:invoke()方法;                                                                                               
                Object invoke(Object proxy,Method method,Object[] args)                                                                                       
          2).获取代理对象:Proxy类的静态方法:                                                                                               
                public static Object newProxyInstance(ClassLoader loader,Class<?>[] interfaces,InvocationHandler h)                                                                                       
注意:Java中的动态代理是基于:接口的(要代理的类,必须是某个接口类型的子类)                                                                                                       


0 个回复

您需要登录后才可以回帖 登录 | 加入黑马