2011-04-28 40 views

回答

45

reify的方法体是词法关闭,可以引用周围的本地范围。 reifyproxy的区别在于:

  • 只支持协议或接口,没有具体的超类。
  • 方法体是结果类的真实方法,而不是外部fns。
  • 直接调用实例上的方法,而不是使用地图查找。
  • 不支持动态交换方法图中的方法。

结果比代理更好的性能,无论是在构造和调用。在其约束条件不受限制的所有情况下,reify优于proxy

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

10

使用reify,你会一次使用proxy,除非你需要重写基类的方法。

相关问题