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í)是年輕人改變自己的最好方式
- ssh框架 2016-09-30
- 阿里移動(dòng)安全 [無線安全]玩轉(zhuǎn)無線電——不安全的藍(lán)牙鎖 2017-07-26
- 消息隊(duì)列NetMQ 原理分析4-Socket、Session、Option和Pipe 2024-03-26
- Selective Search for Object Recognition 論文筆記【圖片目標(biāo)分割】 2017-07-26
- 詞向量-LRWE模型-更好地識(shí)別反義詞同義詞 2017-07-26
- 從棧不平衡問題 理解 calling convention 2017-07-26
- php imagemagick 處理 圖片剪切、壓縮、合并、插入文本、背景色透明 2017-07-26
- Swift實(shí)現(xiàn)JSON轉(zhuǎn)Model - HandyJSON使用講解 2017-07-26
- 阿里移動(dòng)安全 Android端惡意鎖屏勒索應(yīng)用分析 2017-07-26
- 集合結(jié)合數(shù)據(jù)結(jié)構(gòu)來看看(二) 2017-07-26