3. 依存関係反転原則 (Dependency Inversion Principle:DIP)

DIPは、OCPに準拠する方法を教える。

抽象に依存する。具象に依存してはいけない。

具象クラスでなく、親クラスやインターフェイスを通してオブジェクトを参照しなさい、ということ。
オブジェクトを生成するときが厄介。


HogeAbstract = new HogeConclete();
とやると、HogeConcleteクラスに依存してしまう。

Class c = Class.forName("HogeConclete");
HogeAbstract = (HogeAbstract) c.newInstance();
とやっても本質的に問題は解決してないし、コンストラクタに引数を渡せないなどの問題もある。
これを回避するためにファクトリパターンが導入されるわけですが、やりすぎると複雑に。
そこでDIコンテナでつよ、ってことなのかな