質問: ファクトリーメソッドパターンについて質問があります。 http://www.nulab.co.jp/designPatterns/designPatterns2/designPatterns2-2.html こちらのサイトを参考にしました。 「ファクトリメソッドパターンは、1つのファクトリは1つのオブジェクトの生成のみを行うため、生成するオブジェクトの種類の変更を行う場合、ファクトリクラスを切り替える必要があります。 ファクトリメソッドパターンでは多くの場合、オブジェクトの使用者はファクトリのスーパークラスを使用します。 そしてファクトリ指定は、オブジェクト使用者の生成時にコンストラクタで渡したり、ファクトリ設定用メソッドを設けるなどの手段が必要になります。」 後半のファクトリ指定がわかりませんでした。 「オブジェクト使用者の生成時にコンストラクタで渡す」とはどういう意味なのでしょうか? これとは別にもう一つ質問があります。 ファクトリパターンとファクトリメソッドパターンについてです。 私の認識では、ファクトリパターンは非常に簡単なインスタンスを動的に返す時に用いられるのに対し、ファクトリーメソッドパターンはオブジェクト生成に際して必要な処理がある場合などのある程度複雑な場合に使われる。 つまり、基本的には違いはないけど、処理が簡単だったらファクトリーパターン、複雑だったら、ファクトリーメソッドパターンとなる。 と言う風に捉えているのですが、これで間違いないでしょうか?
回答: 1. オブジェクト使用者の生成時にコンストラクタで渡す~ これは、Factoryからオブジェクトを生成するときの設定や方法をコンストラクタで指定するか、 (ここで文章を切らずに)Factory経由でオブジェクトの生成方法を設定する必要がある、です。 1. ファクトリ/ファクトリメソッドの切り分け http://qiita.com/shoheiyokoyama/items/d752834a6a2e208b90ca に書かれているママの内容ですね。 "簡単""複雑"の意味するところはお任せしますが、オブジェクトの生成時や初期化時の前提条件がない(または手順が少ない)のであればファクトリで良いでしょうか。