最近我開始注意到我的一些代碼中有重複。當然,一旦你注意到重複,它就會變成光柵。這就是爲什麼我問這個問題。這個概念是否有一個術語,它是否存在於靜態類型語言中?
想法是這樣的:有時你寫同一類的不同版本:原始版本,鎖定版本,只讀外觀版本等。這些是對類的常見事情,但翻譯是機械強度高。使用鎖定獲取/釋放等方法來環繞所有的方法。在動態語言中,你可以編寫一個函數,這個函數對一個類的實例做了這樣的事情(例如迭代所有的函數,用一個獲取/釋放鎖。)。
我認爲我的意思是一個很好的術語是'反映階級'。你創建一個接受一個類的轉換,並返回一個想要修改的類。同步是最簡單的情況,但還有其他一些:使一個類不可變[包裝方法,以便它們克隆,變異克隆,並將其包含在結果中],使類只讀[假定您可以識別變異方法],創建一個類似乎與類型A而不是類型B一起工作等。
重要的部分是,理論上這些轉換在編譯時是有意義的。即使ActorModel具有依賴於T而改變的方法,但它們以在編譯時可知的特定方式依賴於T(ActorModel <T >方法將返回原始結果類型的未來)。
我只是想知道這是否已經實現了一種語言,它叫什麼。
它聽起來很相似,涵蓋了一些情況。但是,使用方面,我可以參加一個班,讓方法返回期貨而不是正常值嗎? – 2010-05-13 15:55:30
您通常不能用AOP更改返回類型,有一點重要的是使用它的代碼不知道這些方面。 – 2010-05-26 13:10:21