每当需要在闭包内安装多函数上的方法(通常用于支持生命周期管理)时,使用`defmethod`可能有些繁琐,并迫使在闭包中拥有所有的
方法体。
以下两个案例似乎最为相关
如果您需要捕获绑定,则需要在`defmethod`中创建一个绑定的函数并调用它。
在使用依赖注入框架的情况下,您很可能需要在依赖项可用时安装方法,这使得调用`defmethod`变得复杂。
我在foo.clj中附了一个示例来尝试使事情更清晰,并附上一个原始的补丁。
在与@alexmiller在#clojure-dev上的讨论中,似乎可以添加一个`add-method`函数,让`defmethod`使用它。