天天看點

為什麼要使用反射機制

1、反射的構造過程

直接構造   

1、加載程式集   

2、根據類名構造 

反射構造

1、加載程式集   

2、查找需要構造類的類名   

3、根據類名構造

注意:

能不用反射還是别用反射,因為畢竟要以性能做為代價,   不過在某些特定場合,還是隻能用它,是以要自己根據實際情況來掌握.

2、反射與自身去執行個體化有何差別,用反射的意義何在? 

1)當你做一個軟體可以安裝插件的功能,你連插件的類型名稱都不知道,你怎麼執行個體化這個對象呢?

因為程式是支援插件的(第三方的),在開發的時候并不知道 。是以,無法在代碼中 New出來 ,但反射可以,通過反射,動态加載程式集,然後讀出類,檢查标記之後再執行個體化對象,就可以獲得正确的類執行個體。

反射的目的就是為了擴充未知的應用。比如你寫了一個程式,這個程式定義了一些接口,隻要實作了這些接口的dll都可以作為插件來插入到這個程式中。那麼怎麼實作呢?就可以通過反射來實作。就是把dll加載進記憶體,然後通過反射的方式來調用dll中的方法。

很多工廠模式就是使用的反射。

2)在編碼階段不知道那個類名,要在運作期從配置檔案讀取類名, 這時候就沒有辦法寫死

new ClassName(),而必須用到反射才能建立這個對象.