タイトルはそれをかなり要約しています。
create()
メソッドが呼び出されたときに別のクラスのインスタンスを構築するファクトリ クラスがあります。Factory クラスをシングルトンに設定しました。これにより、呼び出しが次のように強制されます。
SomeClass clazz = (SomeClass) FactoryClass.getInstance().create(ENUM.TYPE);
これにより、Factory がスレッド セーフであることが保証されますが、ブロックなどが発生する可能性があります。
ファクトリがシングルトンでない場合、代わりに.create()
メソッドを beに設定static
すると、同様の結果が得られます。
SomeClass clazz = (SomeClass) FactoryClass.create(ENUM.TYPE);
複数のスレッドが FactoryClass を介してオブジェクトのインスタンスを作成しようとする可能性があると仮定すると、どちらが優れていますか? これを行う両方の方法で、同じレベルのスレッド セーフが提供されるのではないでしょうか?