Factory パターンを使用していると思われる Java コードを扱っていましたが、そのパターンに完全には納得していません。
私のコードはこれを行います:
// the factory
class SomeFactoryImpl {
Set<SomeClass> getSomeListOfObjects();
}
そして、コードのどこかに:
{ ...
SomeFactory factory = new SomeFactoryImpl();
Set<SomeClass> list = factory.getSomeListOfObjects();
}
私が考えているポイントは、ファクトリ クラスに静的な create() メソッドがない場合、ファクトリをインスタンス化する必要があるということです。この IMO は、オブジェクト自体をインスタンス化するのと同じくらい複雑でなければなりません。
そのようなファクトリが生成されるオブジェクトのコレクションを返すことができるという議論は十分ではないと思います。ファクトリから実際にオブジェクトを作成する前にファクトリ インスタンスを作成する必要がある場合は、よりクリーンな回避策があると思います。
createメソッドはファクトリクラスのstaticメソッドの方がいい気がします。しかし、私の意見が完全に「正しい」わけではないことも確信しています。
SO コミュニティは、ファクトリ オブジェクトをインスタンス化する方が静的な作成メソッドを使用するよりも優れている例を示すことができますか?
また、これらのリンクと回答をリストした同様の質問への回答に出くわしました。そのため、FactoryMethodPattern、FactoryMethod、およびCreationMethodの違いをコード例で明確に知る必要があります。