查看: 459|回复: 2

在有一个工人在工作,使用动态代理,在不修改工人工作相关代码的前提下,统计工人.

[复制链接]
论坛徽章:
1
Java徽章
日期:2017-06-29 16:21:17
发表于 2017-5-14 22:56 | 显示全部楼层 |阅读模式

public class Gongren {
public static void main(String[] args) {         
Proxy n= (Proxy) new Proxy();
        n.work();
    }
}

主题接口

public interface InvocationHandler {
public void work();
}


真实主题

public class Worker implements InvocationHandler {
public void work(){         
        System.out.println("开始工作");  
        try {
            Thread.sleep(1000);
        } catch (InterruptedException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }  
    }
}

代理类

import Java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
public class Proxy implements InvocationHandler{
private Worker real = null;                           
   public void work(){          
       if (real==null){         
           real = new Worker();         
       }  
       long startTime=System.currentTimeMillis();           
       real.work();         
       long endTime=System.currentTimeMillis();
       System.out.println("结束工作");
       System.out.println("工人工作了"+(endTime-startTime)+"毫秒");                  
   }
@Override
public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
// TODO Auto-generated method stub
return null;
}
}
。。。。。跟之前的有点像
回复

使用道具 举报

论坛徽章:
1
Java徽章
日期:2017-06-29 16:21:17
 楼主| 发表于 2017-5-14 22:58 | 显示全部楼层
谢谢,刚学习到~~~~~~~~~
回复 支持 反对

使用道具 举报

论坛徽章:
33
python徽章
日期:2014-09-23 14:45:41机器学习徽章
日期:2017-03-30 17:23:20推荐系统徽章
日期:2017-04-13 17:34:54python徽章
日期:2017-05-11 17:15:13spark徽章
日期:2017-05-18 16:16:45spark徽章
日期:2017-05-25 16:46:51Excel徽章
日期:2017-06-15 17:34:13高并发架构徽章
日期:2017-07-27 17:30:17Tomcat徽章
日期:2017-08-03 18:16:45大型分布式徽章
日期:2017-09-04 17:20:56python徽章
日期:2017-10-26 15:10:47Kaggle徽章
日期:2017-12-25 17:28:27
发表于 2018-7-8 23:26 | 显示全部楼层
非常感谢,动态代理看概念容易,遇到个题目要用动态代理,立刻发现不会做。多谢楼主!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

 

GMT+8, 2018-7-23 20:00 , Processed in 0.167286 second(s), 33 queries .

关闭

扫一扫加入
本版微信群