为什么我应该使用Reify代替clojure中的代理?
为什么我应该使用Reify代替clojure中的代理?
 reify的方法体是词法closures,可以参考周围的本地范围。  reify与proxy不同的地方在于: 
- 只支持协议或接口,没有具体的超类。
 - 方法体是结果类的真实方法,而不是外部fns。
 - 在实例上调用方法是直接的,而不是使用地图查找。
 - 不支持方法映射中方法的dynamic交换。
 
 结果是比代理更好的性能,无论是在构build和调用。 在其约束不是禁止的情况下,更可取的是proxy 。 
来源: http : //clojure.org/datatypes
 除非您需要重写基类方法,否则请使用reify来代替您曾经使用过的proxy 。