【发布时间】:2011-12-07 21:20:46
【问题描述】:
除了缺少文档,Clojure 中的definterface 和defprotocol 有什么区别?
【问题讨论】:
标签: clojure
除了缺少文档,Clojure 中的definterface 和defprotocol 有什么区别?
【问题讨论】:
标签: clojure
根据 Clojure 的喜悦:
使用
definterface优于defprotocol的优势受到限制 完全是因为前者允许原始类型 参数和返回。在未来的某个时候,同样的优势 可能会扩展到[由协议]生成的接口,所以使用definterface谨慎使用协议,除非绝对 必要的。
【讨论】:
我可能不完全理解是definterface 生成了一个接口 .class,java 代码可以实现该接口,以便创建适合传递给 Clojure 函数的类。
简而言之,协议是一种比多方法更快、更集中的调度方式。您实际上在其他 clojure 代码使用的协议中运行代码。
【讨论】: