タイプBarのプライベートメンバーを持つクラスFooがあるとします。Fooの実装にBarが含まれていることをユーザーに知られたくないし、ユーザーが独自のBarを作成して、Fooのコンストラクター、その他のメソッド、または構成ファイルに渡すことができないようにする必要があります。
編集:バーは、特別なデータベース、ネットワーク接続、または別のプロセスなど、テスト環境の制御外のリソースにアクセスするという点でも問題があります。
Fooの単体テストもできるようにしたい場合はどうしますか?依存性注入はまだ可能ですか?これは、BarとFooが緊密に結合されていることを意味し(依存関係が一方向である場合でも)、この状況が受け入れられる状況になることは決してありませんか?