1
制御の反転は依存関係の反転とどのように関連していますか
Web上の多くの記事では、制御の反転と依存関係の反転の原則という用語が混同され、同義語として使用されているように見えます(さらに混乱は、「DIコンテナー」と「IoCコンテナー」と呼ばれるツールによって強制されます)。ウィキペディアの記事は、IoCがDIと同じではないことを説明しようとする素晴らしい仕事をしています。 制御の反転(IoC)は、コンピュータープログラムのカスタム記述部分が汎用の再利用可能なライブラリから制御のフローを受け取る設計を表します したがって、DIPは、モジュールを具体的な実装ではなく抽象化に依存させることです。 IoCは、プログラムフローを別のモジュールに制御することを目的としています。このモジュールで実行できることの1つは、実行時に依存関係を解決することです。 この違いは公平に思えますが、依存関係の解決以外のIoC原則の他のアプリケーションについて誰も言及していません。ウィキペディアの定義は非常に広範であり、その構成といくつかの内部ロジックに基づいてカスタムコードを呼び出すことができるモジュールを使用すると、さらに多くのことができるようです。 それで、私がまだまだ理解できないいくつかの質問があります: IoCとDIPの実際の関係は何ですか?IoCは常にDIPを実装する手段として機能しますか? 依存関係を解決するためのツールがDIコンテナーとIoCコンテナーの両方と呼ばれるのはなぜですか?これは、DIとIoCが同じものであることを意味します。 注:この質問はDIとIoCの違いは何ですか。後者は依存関係のインバージョンではなく、依存関係の注入について質問するためです。