2011-04-28 64 views

回答

45

reify的方法體是詞法關閉,可以引用周圍的本地範圍。 reifyproxy的區別在於:

  • 只支持協議或接口,沒有具體的超類。
  • 方法體是結果類的真實方法,而不是外部fns。
  • 直接調用實例上的方法,而不是使用地圖查找。
  • 不支持動態交換方法圖中的方法。

結果比代理更好的性能,無論是在構造和調用。在其約束條件不受限制的所有情況下,reify優於proxy

來源:http://clojure.org/datatypes

10

使用reify,你會一次使用proxy,除非你需要重寫基類的方法。

相關問題