Smalltalk是否有依赖注入框架?

时间:2010-04-21 15:33:11

标签: dependency-injection smalltalk pharo

我正在运行Pharo,我只是处于一个用例中,对于Guice依赖注入感到尖叫。 Smalltalk有类似的东西吗?

我知道你可以通过明确地传递你的依赖关系来完成这一切。但这对我来说感觉很尴尬和冗长。

3 个答案:

答案 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

我希望这会引导你朝着正确的方向前进 :)