Rails:Gemfile是一个依赖注入容器(DIC)吗?

时间:2014-11-08 09:33:55

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

我正在学习依赖注入,我的理解只是一种管理依赖关系和解耦类之间依赖关系的方法,因此第四。

根据Anthony Ferrara,实现依赖注入的一种方法是使用依赖注入容器(DIC)。 DIC做了以下事情:

1)列出所需的所有依赖项

2)具有实例化依赖关系的逻辑

我的问题是:Ruby on Rails Gemfile是DIC吗?

1 个答案:

答案 0 :(得分:1)

我猜你已经把自己与依赖管理器和依赖注入混淆了。两者都是两回事。结帐this question关于Gemfile。

更清楚的是,bundler使用了Gemfile。因此,Ruby on Rails或任何其他gem与Gemfile无关。 Bundler只是Rails的默认gem管理器,虽然它可以与任何Ruby项目一起使用,因为它不依赖于框架。

详细了解how does bundler bundlehow bundler require gems以及捆绑商上的此railscast

然而,依赖注入是一种软件设计模式,它实现了控制的反转,并允许程序设计遵循依赖性反转原则。这个词是由Martin Fowler创造的。注入是将依赖项(服务)传递给依赖对象(客户端)。