
そのとおりです。new演算子を使うと、確かに具象クラスをイン
スタンス化しています。これはインタフェースではなく、間違いな
く実装です。いいところに気付きました。コードを具象クラスに結
び付けると、脆弱になり柔軟性がなくなってしまいます。
Duck duck;
if (picnic) {
duck = new MallardDuck();
} else if (hunting) {
duck = new DecoyDuck();
} else if (inBathTub) {
duck = new RubberDuck();
}
ここでは複数の具象クラスをインスタンス化しており、インスタ
ンス化するクラスは、いくつかの条件によって実行時に決まります。 ...