我正在运行Pharo,我只是处于一个用例中,对于Guice依赖注入感到尖叫。 Smalltalk有类似的东西吗?
我知道你可以通过明确地传递你的依赖关系来完成这一切。但这对我来说感觉很尴尬和冗长。
答案 0 :(得分:4)
有一种Smalltalk方言,强调依赖注入。它扩展了语言,使得不仅方法名称而且类名称都使用动态查找。类名的新颖查找与方法的查找最相似,除了通过一系列嵌套类而不是沿着继承链冒泡。因此,您可以通过更改嵌套环境来更改注入的类。
要了解有关方言的更多信息,follow this link。
答案 1 :(得分:1)
With Guice,看起来您定义了类以将某些接口作为构造函数参数。然后你告诉Guice“这个接口映射到实现所述接口的那个类”。
Smalltalk完全没有必要这样做,因为Smalltalk类只关心协议。
如果我们将示例转换为Smalltalk,我们可以将任何我们喜欢的对象传递给RealBillingService的构造函数,只要该对象响应#logChargeResult:和#logConnectException :,即,只要该对象实现了所需的协议一个TransactionLog。
Here's a link对上述类似的答案。
答案 2 :(得分:0)
我不是真正的专家,但我在google上发现了这篇文章:http://codebetter.com/blogs/jeremy.miller/archive/2006/05/05/144172.aspx
我希望这会引导你朝着正确的方向前进 :)