抽象化すると分岐が無限に大きくなって考えすぎて訳が分からなくなる
void doSomething(IHoge & hoge);
このコードを1回呼び出すだけでもう何が起こるか実質予測不能になる
予測するにはIHogeを継承したすべてのクラスとdoSomethingの中身を把握しないといけない
これじゃあめんどくさすぎてやってられない