私は現在、制御の反転(IoC)コンテナーを既存のアプリケーションに統合することに直面しており、カップリングを減らし、それによってテスト容易性を高めるという最終的な目標でそれを最も簡単に達成できる方法に関するいくつかの推奨事項を探しています。私は通常、ほとんどのクラスを神のオブジェクトとして分類しませんが、静的、シングルトン、およびインターフェイスの欠如により、それぞれに責任が多すぎ、依存関係が隠されています。
以下は、直面する必要があるいくつかの課題の背景です。
- 依存性注入はほとんど使用されません
- 静的メソッドが豊富-ファクトリーメソッドとヘルパーメソッドの両方として
- シングルトンはかなり普及しています
- インターフェースを使用すると、きめ細かすぎない
- オブジェクトは多くの場合、基本クラスを通じて不要な依存関係を取り込みます
私たちの意図は、次に特定の領域で変更を加える必要があるときに、実際には存在するが、シングルトンやスタティックなどのグローバルの背後に隠されている依存関係を取り除くことを試みることです。
IoCコンテナが依存性注入の導入の副次的な要素になると思いますが、これらの依存関係を打開するのに役立つ、実行または推奨できる一連のプラクティスと推奨事項があると思います。