1

ファクトリパターンは、特定のインターフェイスを実装するクラスで構成されます。それは常にインターフェースである必要がありますか?インターフェイスではなく他のクラスから継承するサブクラスがある場合でも、ファクトリメソッドになりますか?

4

2 に答える 2

5

Factoryメソッドパターンは、必ずしもインターフェイスとは関係ありません(言語のinterfaceキーワードまたは構成に関して)。クラスインスタンスを作成するファクトリメソッドを作成でき、インターフェイスを使用している場合と同じように、基本クラスの代わりにサブクラスを簡単に作成できます。

たとえば、このウィキペディアの例を参照してください。ここでは、aRoomが作成され、メインタイプのサブクラスがさまざまな具体的なタイプのRoomインスタンスを作成します。「インターフェース」が含まれていなくても、これはまだファクトリメソッドパターンを使用しています。

私の質問は、インターフェイスを親クラスに「置き換える」場合でも、ファクトリメソッドになるのでしょうか。

はい-それでもファクトリメソッドになります。

于 2012-08-30T22:33:39.240 に答える
1

それはそれを意味するものではありません。Javaではなく、相互作用、制御(作成)のコンテキストでのインターフェースinterface

于 2012-08-30T22:33:57.930 に答える