シングルトンはアンチパターンですか?はいの場合、Springの依存性注入もアンチパターン(SpringはデフォルトのシングルトンBeanを促進するため)?
1718 次
2 に答える
5
シングルトンをハードコーディングすることと、Springを使用してシングルトンBeanを作成することには重要な違いがあります。後者は単なる構成です。
そのため、Springはテスト容易性を妨げません。これは、Beanがシングルトンとして使用される単一のユースケースです。テストで手動でインスタンス化するか、同じインターフェイスのモック実装に置き換えることで、同じスプリングを簡単に使用できます。
クラスをシングルトンとしてコーディングする場合、クラスを書き直さずに簡単に置き換えることはできません。テストは、それを置き換えたいと思うかもしれない一例にすぎません。そのBeanの2つの異なるインスタンスが必要であることに気付いた場合は、ハードコードされたシングルトンでも問題が発生します。
于 2012-09-17T09:16:00.390 に答える
4
シングルトンパターンはアンチパターンではなく、オブジェクトのインスタンス数を制限するためのパターンです。
ただし、シングルトンを悪用してグローバルインスタンスを提供することは、アンチパターンです。
質問の春の部分については、ヨアヒムザウアーの回答を参照してください。
于 2012-09-17T09:16:48.587 に答える