回答編集履歴
1
どこに対する説明なのかを間違えていました
answer
CHANGED
@@ -1,7 +1,7 @@
|
|
1
|
-
>
|
1
|
+
> 何らかの条件分岐によってその都度「どのProductを生成するか(newするか)」を決めるのと同じではないか?
|
2
2
|
|
3
3
|
その「条件」を、`Product`を使う側のコードから追い出すことができます。
|
4
4
|
|
5
|
-
たとえば、最適化のために「簡単な`Product`と複雑な`Product`で実際に作るクラスを変える」となった場合も、`Factory`と`Product`だけ使う側では**実際のクラスを全く気にしなくてよくて**、`Factory`側のコードを書き換えるだけで、実際の`Product`のクラスを違えることができます。
|
5
|
+
たとえば、最適化のために、動的に「簡単な`Product`と複雑な`Product`で実際に作るクラスを変える」となった場合も、`Factory`と`Product`だけ使う側では**実際のクラスを全く気にしなくてよくて**、`Factory`側のコードを書き換えるだけで、実際の`Product`のクラスを違えることができます。
|
6
6
|
|
7
7
|
Javaの場合、`new`するにはクラスがコンパイル時点で決まっていないといけないので、こんな芸当はできません。
|