具体的なクラスに直接ではなく、インターフェイスに対するプログラミングを推奨するのはいつですか?
私が従うガイドラインは、コードが論理的/物理的境界を越える必要があるときはいつでも抽象化を作成することです。特にインフラストラクチャ関連の問題が関係している場合はそうです。
もう 1 つのチェックポイントは、追加の懸念コード (キャッシュ、トランザクション認識、インプロセス実行ではなく Web サービスの呼び出しなど) が原因で、依存関係が将来変更される可能性があるかどうか、またはそのような依存関係がインフラストラクチャ統合ポイントへの直接参照を持っているかどうかです。
コードが、論理的/物理的境界を越えるための制御を必要としないものに依存している場合、多かれ少なかれそれらと対話するための抽象化を作成しません。
何か不足していますか?