このサイトでは、シングルトンを避ける必要がある理由について多くの議論がありますが、シングルトンが理にかなっていて最良の選択肢である場合はありますか?
シングルトンが最良のオプションであると私が考える例は、マッピング層のデータベースからすでにロードされているすべてのモデルを追跡する必要があるIDマップを実装する場合です。この場合、すべてのクライアントコードがマップの同じインスタンスを使用し、ロードされたモデルの同じリストにすべてアクセスできるように、マップが事実上グローバルであることが重要です。最も簡単な解決策は、クラスをシングルトンとして(または静的メソッドとして)実装することのようです。これが最善のアプローチですか、それとも別の方法がありますか?
シングルトンを使用しても問題がない場合や、常に悪い場合は他にありますか?