追いにくい、コンパイル時のチェック機構を・・・
なんていっているのは設計が出来ていないだけだ

それにDIの言っている依存性の軽減もはき違えてるしなぁ。

本来、オブジェクト指向での依存といえば、
あるオブジェクト(A)が、他のクラスのサブクラスもしくはサブタイプのオブジェクトを使用する、
これだけだ。

ただ、それを実装に落とすとどうしても、オブジェクトAはどのサブクラス・サブタイプを
インスタンス化すべきかを知らないといけないことになる。

その依存(どのクラスをインスタンスかすべきか)をなくすのがDIだ。