Rails中是否存在依赖注入?

时间:2010-02-03 09:15:34

标签: ruby-on-rails ruby spring dependency-injection

Rails是否具有MVC方法的事实是否具有依赖注入?

或者有没有理由我们不讨论Rails中的依赖注入?

如果Rails确实有依赖注入,那么它包含什么?

5 个答案:

答案 0 :(得分:13)

IoC是最重要的,但每天都会在Ruby / Rails中发生DI。无论何时你做:

def initialize(model_klass)
  @model_klass = model_klass
end

这是DI。这个范例也用在Rails源代码的各个地方。例如,Railties gem本身主要是DI引擎。您可以注入您喜欢的ORM,各种插件配置和生成器。

Dependency Injection有一个大而可怕的名字,但它归结为只是通过在运行时注入依赖项的方式来解耦类依赖关系。

使用哪种语言并不重要,只要您需要在某处插入行为/代码,您可能正在使用它。

答案 1 :(得分:9)

依赖注入是一种范例,因此它存在于每种面向对象的语言中。

是否有用于Ruby的DI框架 - 请检查this question

答案 2 :(得分:4)

Ruby通常不需要依赖注入。 Jamis Buck blogged extensively关于原因。非常值得一读。

答案 3 :(得分:0)

我会说你不需要红宝石这样的东西......但如果你真的想要,有些人会workarounds

答案 4 :(得分:0)

我在我的Web框架中使用此IoC https://github.com/alexeypetrushin/micon,大部分时间它都保持隐藏状态并默默地解决依赖关系和组件初始化问题,否则应该手动解决。

您可以在此处查看http://ruby-lang.info(此网站使用Rad,我的网络框架https://github.com/alexeypetrushin/rad_core)。