Rails中是否存在依赖注入?

kws*_*kws 54 ruby spring dependency-injection ruby-on-rails

Rails有MVC方法的事实是否意味着依赖注入?

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

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

Aar*_*ian 14

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

def initialize(model_klass)
  @model_klass = model_klass
end
Run Code Online (Sandbox Code Playgroud)

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

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

使用什么语言并不重要,只要你需要在某个地方插入行为/代码,你可能正在使用它.


Boz*_*zho 10

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

是否有用于Ruby的DI框架 - 请检查此问题


Joh*_*ley 1

Ruby通常不需要依赖注入.Jamis Buck 在博客中广泛谈到了原因.非常值得一读.

  • Jamis真的说不需要经常与Java一起使用的严厉的DI框架.他并没有说Ruby中没有必要 - 相反,DI可以在Ruby中用于减少耦合并提高可测试性.这不是必要的. (53认同)
  • 该博客的作者说他们每天都使用DI,而不是DI框架. (13认同)
  • downvoted.依赖注入是ruby中的最佳实践.它可以提供更好的可测试性和解耦,正如scottburton11所建议的那样.我建议阅读[Ruby中的实用面向对象设计:敏捷入门](http://amzn.to/1CTLDO1)作者Sandi Metz被认为是该主题的大师. (10认同)