シングルトンはアンチパターンですか?はいの場合、SpringのDependency Injectionもアンチパターンになります(SpringはデフォルトのSingleton Beanをプロモートするため)?
回答:
回答№1は5シングルトンをハードコーディングすることと、シングルトンBeanを作成するためにSpringを使用することとの間には重要な違いがあります。後者は単なる設定です。
そのため、Springはテスト容易性を妨げません。 Beanをシングルトンとして使用する単一のユースケースです。テストで手動でインスタンス化するか、同じインターフェイスのモック化された実装で置き換えることにより、同じスプリングを簡単に使用できます。
クラスをシングルトンとしてコーディングすると、「t書き換えることなく、簡単に交換できます。テストは、あなたがそれを置き換えることを望むかもしれないただ一つの例です。 「そのBeanの2つの異なるインスタンスが必要だ」と気付いた場合は、ハードコーディングされたシングルトンにも固執しています。
回答№2の場合は3
シングルトンパターンはアンチパターンではなく、インスタンスの数を制限するパターンです オブジェクト用。
しかし、グローバルインスタンスを提供するためにシングルトンを悪用することはアンチパターンです。
あなたの質問の春の部分については、ヨアヒム・ザウアーの答えをご覧ください。