黑马程序员技术交流社区

标题: ----------代理模式---------- [打印本页]

作者: syusouki    时间: 2015-10-5 11:29
标题: ----------代理模式----------
代理模式:                                                                                                       
        本来应该自己做的事情,却请了别人来做,被请的人就是代理对象。                                                                                               
                                                                                                       
动态代理:                                                                                                       
        在程序运行过程中产生的这个对象;而程序运行过程中产生对象其实就是我们刚才反射讲解的内容,所以,动态代理其实就是通过反射来生成一个代理对象.                                                                                               
                                                                                                       
在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中的动态代理是基于:接口的(要代理的类,必须是某个接口类型的子类)                                                                                                       







欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2