Dependency Injection(以下、DI)とは、「クラスやモジュールが必要とする外部リソース(オブジェクトやサービス)を、自ら生成せずに外部から受け取る設計パターン」です。
DIは、日本語では「依存性の注入」「依存性注入」と訳されています。
ところで、日本語で依存性とはどういう意味でしょうか。
・依存(いそん)
他の人や物に頼ること、または論理的に他の要素によって規定される関係を指します。
例:「あるサービスの動作はネットワークに依存する」→ネットワークがなければ動作しないことを意味します
・性(せい)
名詞を作る接尾語のひとつで、「…の性質」「…の傾向」を表します。
例:「可能性」「危険性」「可読性」などの語で使われます
つまり依存性とは、「ある対象が他の対象に頼る性質や傾向」のこと。例えば、化学反応の「濃度依存性」は「濃度によって反応速度などが変化する性質」を指します
DIでは、あるクラスやモジュールが外部から受け取るのは、明確なリソース(オブジェクトやサービス)です。依存性という意味にある性質や傾向ではありませんし、そもそも性質というのは注入される側が持っていて、注入される内容によって何かが変化するということです。
これらを考えると日本語の意味としての依存性は、DIにおけるdependencyの概念とはまったく異なるものです。
適切な語訳としては「依存関係」です。
実際DIは、「依存関係を注入する」と説明されることが多々あります。
誤った概念を持つ用語を思考停止で使い続けるのはやめ、以後、DI=依存関係の注入です。