2009-02-13 41 views

回答

2

反射可以用來實現後期綁定。

延遲綁定可用於實現猴子修補。

猴子修補可用於實現該答案中顯示的編碼風格。

但還有其他一些方法可以實現不需要猴子修補或反射的功能。哎呀,一個好的宏預編譯器可以讓你關閉。

因此,技術上正確,但不是(恕我直言)最好的例子。

+0

IYO,會是什麼是反思的更有效的例子嗎? – notnot 2009-02-13 20:19:42

1

在增加遞歸級別的風險,我想回應,雖然你在這個鏈接引用我的答案。

由於我們對反射的直觀理解是指向內看,誤解很容易做出。這當然也是編程中反射的一個重要方面 - 例如,在Ruby中,我們有像instance_of這樣的方法來允許對象在運行時提問自己的問題。

但是看看​​:

反射是由一個 計算機程序可以觀察和 修改自身的結構和行爲 的過程。

正如您所看到的,反射不僅僅是運行時自我檢查。這也是改變運行時行爲的能力。重新開課也被稱爲「猴子補丁」。你可以閱讀更多關於它here

猴子貼劑是一種方法, 而不改變 原始源代碼的 動態語言擴展或修改運行時代碼。

這個過程也被稱爲: - 游擊隊修補 - 擴展先前聲明的類 - 重新開啓班 - 動態芬克 - 劫持 - 鴨衝孔 - 法混寫