💉

Dependency Injection(DI)を超簡単にまとめた

2024/10/09に公開

はじめに

DIって、依存だの注入だの、何だか初学者には聞き馴染みのない言葉が羅列され、簡単な解説がないな。と感じていました。
ので、超簡単に概要のメモを残します。

Dependency Injection(DI)とは

オブジェクト指向のインスタンスを知っていることが前提です。
簡単に言うと、以下のルールを守るという デザインパターン(設計思想) のことです。

  • 処理の中ではインスタンスの生成は行わない
  • その代わり、処理に必要なインスタンスはパラメータで受け取る
  • 処理に必要なインスタンスの生成は、処理の開始前[1]にまとめて行う

ただ、これだけのことなんです。簡単ですね。

Dependency Injection(DI)のメリット

よく言われるメリットは以下になります。

  1. 疎結合な実装が実現できる
  2. コードの再利用性が向上する
  3. テストコードの実装が容易になる

ややピンと来ない内容ですよね。
DIが理解しづらい要因のひとつだと思います。

ですが、ここを分け入ると、SOLID原則 の知識や 具体的な実装例 が必要になるため、詳細は割愛します。

もっと詳しく知りたい

世の中には色々と詳しい記事が散見されるため、そちらに譲ります。
(ですが、逆に詳細すぎたり、具体的すぎたりするので、初学者は分からなくなりがちのイメージ)
https://ja.wikipedia.org/wiki/依存性の注入
https://zenn.dev/tokium_dev/articles/dependency-injection-watanabe
https://zenn.dev/nuits_jp/articles/2024-05-22-why-dependency-injection

脚注
  1. 処理の開始前
    具体的には「アプリケーション起動時」「リクエスト到着時」に大別されます。詳細は、利用するフレームワークの公式ドキュメントを参照してください。 ↩︎

Discussion