■
・依存
「依存」って2段階あるのかな。
- 具象クラス名を意識する
public void setHoge(HogeImpl hoge) { ... }
- 具象クラスを生成する
HogeInterface hoge = new HogeImpl();
前者への解決策は、
public void setHoge(HogeInterface hoge) { ... }
とすればOK。
後者へは、
HogeInterface hoge = new HogeInterface(); // 実は new HogeImpl(); される
ってできたら良いけど無理。(^^;
だからこうなる。
HogeInterface hoge = HogeFactory.create();
・初期化
で、単純にnewするだけならファクトリでOKなのだけど、実際の初期化手順等々を考えると不十分なわけで、、、