web-dev-qa-db-ja.com

依存関係の注入はRailsに存在しますか?

RailsにMVCアプローチがあるという事実は、依存性注入があるということを意味しますか?

それとも、Railsでの依存性注入について触れない理由はありますか?

Rails依存関係の注入がある場合、それは何で構成されますか?

56
kws

Rubyでは通常、依存性注入は不要です。 Jamis Buck 広範囲にブログ 理由について。読む価値があります。

4
John Topley

IoCは大きなハンマーですが、DIはRuby/Rails)で毎日発生します。いつでも:

def initialize(model_klass)
  @model_klass = model_klass
end

これはDIです。このパラダイムは、Railsソースコードのさまざまな場所でも使用されます。たとえば、Railties gem自体はほとんどDIエンジンです。次のことができますinject好きなORM、さまざまなプラグイン構成、ジェネレーター。

依存性注入は大きくて怖い名前ですが、結局のところ、実行時に依存関係を注入する方法によってクラスの依存関係を分離するだけです。

使用する言語は問題ではありません。どこかに動作/コードを組み込む必要がある限り、おそらくそれを使用しています。

13
Aaron Qian

依存性注入はパラダイムであるため、すべてのオブジェクト指向言語に存在します。

Ruby-チェックするためのDIフレームワークがあるかどうか この質問

9
Bozho

Rubyではそのようなことは必要ないと思いますが、本当にそうしたい場合は 回避策 を使用する人もいます。

0
marcgg

私はこのIoC https://github.com/alexeypetrushin/micon をWebフレームワークで使用します。ほとんどの場合、非表示のままであり、手動で解決する必要がある依存関係とコンポーネントの初期化の問題を黙って解決します。

あなたはここでそれを実際に見ることができます http://Ruby-lang.info (このサイトはRad、私のウェブフレームワークを搭載 https://github.com/alexeypetrushin/rad_core =)。

0