ファクトリパターンは、特定のインターフェイスを実装するクラスで構成されます。それは常にインターフェースである必要がありますか?インターフェイスではなく他のクラスから継承するサブクラスがある場合でも、ファクトリメソッドになりますか?
2 に答える
5
Factoryメソッドパターンは、必ずしもインターフェイスとは関係ありません(言語のinterface
キーワードまたは構成に関して)。クラスインスタンスを作成するファクトリメソッドを作成でき、インターフェイスを使用している場合と同じように、基本クラスの代わりにサブクラスを簡単に作成できます。
たとえば、このウィキペディアの例を参照してください。ここでは、aRoom
が作成され、メインタイプのサブクラスがさまざまな具体的なタイプのRoom
インスタンスを作成します。「インターフェース」が含まれていなくても、これはまだファクトリメソッドパターンを使用しています。
私の質問は、インターフェイスを親クラスに「置き換える」場合でも、ファクトリメソッドになるのでしょうか。
はい-それでもファクトリメソッドになります。
于 2012-08-30T22:33:39.240 に答える
1
それはそれを意味するものではありません。Javaではなく、相互作用、制御(作成)のコンテキストでのインターフェースinterface
于 2012-08-30T22:33:57.930 に答える