teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

どこに対する説明なのかを間違えていました

2018/06/26 23:19

投稿

maisumakun
maisumakun

スコア146659

answer CHANGED
@@ -1,7 +1,7 @@
1
- > 結局Factory側インスタンスを条件に合わせて生成していのだら意味がないのでは?
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`するにはクラスがコンパイル時点で決まっていないといけないので、こんな芸当はできません。