1.寫在前面的話

最近都在看framework的東西,也幾天沒有寫什么東西,今天有點(diǎn)時(shí)間寫下上次面試遇到的一個(gè)問題。問題大概是這樣的,如果我需要統(tǒng)計(jì)頁面的點(diǎn)擊事件,即添加埋點(diǎn)進(jìn)行統(tǒng)計(jì),如何實(shí)現(xiàn)?我當(dāng)時(shí)回答的是反射加代理去實(shí)現(xiàn)這個(gè)功能。有朋友說,這不是很簡單嘛,直接用代理模式就OK了啊,干嘛還反射。的確,如果在項(xiàng)目初期就確定了這個(gè)需求的話,我想大部分人都會(huì)想到用代理模式來實(shí)現(xiàn)這個(gè)功能。但是如果項(xiàng)目已經(jīng)穩(wěn)定運(yùn)行了一段時(shí)間呢?我們不可能把每個(gè)事件都重新替換成我們的代理類吧?這樣重復(fù)的工作太沒有效率了,這里我們可以通過反射加代理技術(shù)來實(shí)現(xiàn)這個(gè)功能。


2.反射和代理

反射機(jī)制是在運(yùn)行狀態(tài)中,對(duì)于任意一個(gè)類,都能夠知道這個(gè)類的所有屬性和方法;對(duì)于任意一個(gè)對(duì)象,都能夠調(diào)用它的任意一個(gè)方法和屬性;

在運(yùn)行時(shí)判斷任意一個(gè)對(duì)象所屬的類;

在運(yùn)行時(shí)構(gòu)造任意一個(gè)類的對(duì)象;

在運(yùn)行時(shí)判斷任意一個(gè)類所具有的成員變量和方法;

延伸閱讀

學(xué)習(xí)是年輕人改變自己的最好方式-Java培訓(xùn),做最負(fù)責(zé)任的教育,學(xué)習(xí)改變命運(yùn),軟件學(xué)習(xí),再就業(yè),大學(xué)生如何就業(yè),幫大學(xué)生找到好工作,lphotoshop培訓(xùn),電腦培訓(xùn),電腦維修培訓(xùn),移動(dòng)軟件開發(fā)培訓(xùn),網(wǎng)站設(shè)計(jì)培訓(xùn),網(wǎng)站建設(shè)培訓(xùn)學(xué)習(xí)是年輕人改變自己的最好方式