1. ホーム
  2. design-patterns

[解決済み] デザインパターンについて。シングルトンはいつ使うべきですか?

2022-03-19 08:13:19

質問

グローバル変数の美化 - グローバルクラスの美化になる。オブジェクト指向の設計を壊すとも言われる。

古き良きロガー以外で、シングルトンを使う意味があるシナリオを教えてください。

どのように解決するのですか?

私は真実を追求する過程で、シングルトンを使用する理由はほとんどないことを発見しました。

インターネット上で何度も出てくる理由のひとつに、quot;logging"クラスがあります(あなたが言及したものです)。この場合、クラスの単一のインスタンスの代わりにシングルトンを使用することができます。なぜなら、ロギングクラスは通常、プロジェクト内のすべてのクラスによって何度も何度も使用される必要があるためです。もし、すべてのクラスがこのロギング・クラスを使用すると、依存性注入が面倒になります。

ログは、コードの実行に影響を与えないので、quot;acceptable" Singletonの具体例と言えます。ロギングを無効にしても、コードの実行は変わりません。ログを有効にしても、同じです。Miskoは、それを次のように表現しています。 シングルトンの根本原因 ここでの情報の流れは一方通行です。アプリケーションからロガーへです。ロガーがグローバルステートであっても、ロガーからアプリケーションに情報が流れないので、ロガーは許容範囲内です。

他にも正当な理由があるのでしょう。アレックス・ミラー氏は、" 嫌いなパターン サービスロケーターやクライアントサイドUIも、もしかしたら「許容範囲」の選択肢になるかもしれないと話しています。

続きを読む at Singleton 愛してる、でも私を落ち込ませている。