服务热线:13616026886

技术文档 欢迎使用技术文档,我们为你提供从新手到专业开发者的所有资源,你也可以通过它日益精进

位置:首页 > 技术文档 > JAVA > 新手入门 > 基础入门 > 查看文档

设计模式研究--proxy model

这是一个动态代理的例子,今天时间比较晚了,抽时间我会做一下分析.

package javapatterns;

import java.lang.reflect.invocationhandler;
import java.lang.reflect.method;
import java.lang.reflect.proxy;
import java.util.list;
import java.util.vector;
/**
 *  proxy model 的研究
 * <p>title:vectorproxy.java</p>
 * <p>description:</p>
 * <p>copyright:copyright (c) 2004 dsii,inc</p>
 * <p>company:dsii,inc</p>
 * @author morgan 2004-11-8
 * @version 1.0
 */
public class vectorproxy implements invocationhandler {
 private object proxyobj;

 public vectorproxy(object obj) {
  proxyobj = obj;
 }

 public static object factory(object obj) {
  class cls = obj.getclass();

  return proxy.newproxyinstance(
   cls.getclassloader(),
   cls.getinterfaces(),
   new vectorproxy(obj));
 }

 public object invoke(object proxy, method method, object[] args)
  throws throwable {
  system.out.println("before calling " + method);

  if (args != null) {
   for (int i = 0; i < args.length; i++) {
    system.out.println(args[i] + "");
   }
  }
  object o = method.invoke(proxyobj, args);

  system.out.println("after calling " + method);
  return o;
 }

 public static void main(string[] args) {
  list v = null;
  v = (list) factory(new vector(10));
  v.add("new");
  v.add("york");
 }
}

扫描关注微信公众号