黑马程序员技术交流社区

标题: 关于动态代理proxy [打印本页]

作者: 冯敏    时间: 2011-11-26 13:19
标题: 关于动态代理proxy
本帖最后由 xiaoyu_min 于 2011-11-26 16:19 编辑

看张老师讲动态代理部分,怎样创建一个代理类,听的有点模糊,帮忙给讲解一下,最好有例子说明
作者: 侯伟浩    时间: 2011-11-26 13:23
来个简单点得方法:
  1. public class MyProxy {

  2.         public static void main(String[] args) {
  3.                 List proxy=(List)Proxy.newProxyInstance(
  4.                                 ArrayList.class.getClassLoader(),
  5.                                 new Class[]{List.class},
  6.                                 new InvocationHandler(){
  7.                                         ArrayList array=new ArrayList();
  8.                                         public Object invoke(Object proxy, Method method,
  9.                                                         Object[] args) throws Throwable {
  10.                                                 return method.invoke(array, args);
  11.                                         }
  12.                                 });
  13.                 proxy.add("123");
  14.                 System.out.println(proxy.get(0));
  15.         }

  16. }
复制代码
用这种方式就可以得到ArrayList集合的代理类了,ArrayList集合的各种方法代理中也都有了。
个人理解:用代理的好处就是-可以在方法中加入你自己的代码。
作者: 郭学文    时间: 2011-11-26 13:59
利用多态来扩展复用代码

本着这个思想,写吧....
作者: 郭学文    时间: 2011-11-26 14:06
二楼的示范写得很好,
但实际使用应该不会像二楼的那样写吧,这样写就没扩展性了。还是会另起个代理类接收对象的





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