在使用代理類之前我們必須要要弄清楚什麼是代理,代理類,代理類的作用是什麼?
代理可以理解爲相當於廠家的代理商,比如廠家生產商品,自己不能直接買東西,而是委託代理人(經銷商)去買商品。
用下面一個例子來說明什麼是代理類和代理類的作用?
比如:
在不知道類x的源代碼的情況下,類x 中有sayHello方法,若想測出執行sayHello方法所需的時間。這是就需要一個代理類來完成了。
class x {
void sayHello() {
}
}
class xProxy {
Sytsem.out.println(System.currentTimeMillis();
new x().sayHello();
System.out.println(System.currentTimeMillis();
}
這是xProxy類就是x類的代理類
由此引出一個問題:如果在程序中有好多的x類,是不是要寫好多個代理類呢?
是的,理論上應該是這樣的,但是在JVM 中提供了創建動態類來實現代理。
1、怎樣創建動態類及查看方法列表