gpt4 book ai didi

clojure - 与 google guice 相当的 clojure 是什么?

转载 作者:行者123 更新时间:2023-12-02 07:08:03 24 4
gpt4 key购买 nike

我遇到了 google guice,但无法真正理解它以及它的作用,尽管它似乎有很多炒作。我希望从 clojure 的角度了解该库,以及为什么在 clojure 应用程序中需要/不需要它,以及该语言中是否内置了类似的内容。

最佳答案

由于 Java 的 OO 和类型系统,不同底层实现之间的动态切换(例如用于测试(模拟)目的)可能难以管理。像 Google Guice 这样的库旨在处理这些 dependency injections在 Java 中更加优雅。

在 Clojure 和其他函数式语言中,函数可以传递,这使得使用不同的实现变得更加容易。

在 Clojure 中可以通过多种方式完成此操作:

  • 使用您选择的函数作为高阶函数的参数。
  • (重新)将您选择的函数绑定(bind)到变量。
  • 将您选择的函数封装在闭包中,然后可以传递和调用。

Clojure Programming第12章有一些很好的 OO 模式示例,例如依赖注入(inject)以及在 Clojure 中处理这些模式的替代方法。

Sean Devlin 还有一个 Full Disclojure video关于 Clojure 中的依赖注入(inject)。不过,他的例子可能选得更好。他没有在闭包中使用完全不同的函数实现,而是使用返回函数的不同“版本”的工厂。但要点保持不变。

基本上,依赖注入(inject)是 OOP 中不可避免的一种模式,而在 FP 中可以轻松解决(甚至不是问题)。

关于clojure - 与 google guice 相当的 clojure 是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13085370/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com