そもそも依存性注入(DI)って何なのか?




依存性注入(DI)は、Springフレームワークで一躍有名になりました。

依存性注入とは・・・ざっくり言うと

  • 後からロジックを自由に差し替える(注入)ことができる

ふつうはノーマルタイヤを履いておき、雪が降ったらスタッドレスタイヤに履き替える・・・ようなものです。

プログラム内にて、依存性を注入してみる

まずは、実際にどのように依存性を注入するか理解するために、プログラム内で注入をしてみます。

上で書いたように、タイヤの履き替えをしてみます。

実行結果

見るまでもないかもしれませんが、実行結果はこちら。

まとめ

プログラム内でタイヤを履き替えをしてみました。
この例では、季節に応じて、mainメソッドを改変することで、タイヤを後から自由に履きかえることができます。
しかし、プログラムの改修は必要です(; ・`д・´)

・・・とは言え、タイヤの履き替えもプログラムを都度書き換えるのは大変ですし、リリース後はなかなかできないこともあります。

そこで、これを一歩進めて、プログラム以外の定義ファイル等に依存関係を書くようにします。
必要に応じて、定義ファイルを書き換えることでロジックを切り替えます。

Springフレームワークに代表されるDIコンテナでは、プログラム実行時に、フレームワークが定義を参照。自動でロジックを注入することができます。