シングルトンファクトリメソッドと静的ファクトリメソッドの両方で1つのインスタンスしか作成できないのはなぜですか?同じ目的のために2つの概念があるのはなぜですか?シングルトンと静的ファクトリメソッドの違い
注:ここで、「staticファクトリメソッド」は、彼が書いたジョシュアブロッホによって効果的なJavaの本から取られる:
「staticファクトリメソッドの第2の利点は、コンストラクタとは異なり、それらが必要とされていない、ということですこれにより、不変クラス(Item 15)は事前構築されたインスタンスを使用したり、構築されたインスタンスをキャッシュしたり、不要な重複オブジェクトの作成を避けるために繰り返し配布したりすることができます。Boolean.valueOf(この手法は、Flyweightパターン[Gamma95、p。195]に似ています。同等のオブジェクトが頻繁に要求される場合、特に作成コストが高ければパフォーマンスを大幅に向上させることができます。 繰り返しの呼び出しから同じオブジェクトを返す静的ファクトリメソッドの機能により、クラスはいつでも存在するインスタンスを厳密に制御できます。これを行うクラスはインスタンス制御されていると言われています。インスタンス制御クラスを作成する理由はいくつかあります。 インスタンスコントロールクラスは、それがシングルトン(項目3)またはnoninstantiable(項目4)」は
シングルトンでは1つのインスタンスしか存在しないことが保証されています。スタティックファクトリメソッドは、コンストラクタを使用する代わりに使用されます。通常、オブジェクトは複雑に作成されますが、 –
スタティックファクトリメソッドは、オブジェクトの作成をカプセル化しますが、複数のオブジェクトを作成することはできます。 – Pratyay
答えはありません、ファクトリメソッドはコンストラクタのリストの代わりです。同じ引数をファクトリメソッドに渡すと、毎回別のオブジェクトが返されます。 – 11thdimension