[解決済み] デザインパターンについて。シングルトンはいつ使うべきですか?
2022-03-19 08:13:19
質問
グローバル変数の美化 - グローバルクラスの美化になる。オブジェクト指向の設計を壊すとも言われる。
古き良きロガー以外で、シングルトンを使う意味があるシナリオを教えてください。
どのように解決するのですか?
私は真実を追求する過程で、シングルトンを使用する理由はほとんどないことを発見しました。
インターネット上で何度も出てくる理由のひとつに、quot;logging"クラスがあります(あなたが言及したものです)。この場合、クラスの単一のインスタンスの代わりにシングルトンを使用することができます。なぜなら、ロギングクラスは通常、プロジェクト内のすべてのクラスによって何度も何度も使用される必要があるためです。もし、すべてのクラスがこのロギング・クラスを使用すると、依存性注入が面倒になります。
ログは、コードの実行に影響を与えないので、quot;acceptable" Singletonの具体例と言えます。ロギングを無効にしても、コードの実行は変わりません。ログを有効にしても、同じです。Miskoは、それを次のように表現しています。 シングルトンの根本原因 ここでの情報の流れは一方通行です。アプリケーションからロガーへです。ロガーがグローバルステートであっても、ロガーからアプリケーションに情報が流れないので、ロガーは許容範囲内です。
他にも正当な理由があるのでしょう。アレックス・ミラー氏は、" 嫌いなパターン サービスロケーターやクライアントサイドUIも、もしかしたら「許容範囲」の選択肢になるかもしれないと話しています。
関連
-
[解決済み] Pythonでシングルトンを作成する
-
[解決済み] Java のコア・ライブラリにおける GoF デザイン・パターンの例
-
[解決済み] Abstract FactoryとFactoryのデザインパターンの違いは何ですか?
-
[解決済み] アグリゲート・ルートって何?
-
[解決済み】関数型プログラミングはGoFデザインパターンに取って代わるか?
-
[解決済み】C++ シングルトンデザインパターン
-
[解決済み】Singleton。どのように使用するべきか
-
[解決済み】ラッパークラスとは何ですか?
-
[解決済み] ブリッジパターンはどのようなときに使うのですか?Adapterパターンとどう違う?
-
[解決済み] ソーシャルネットワークにアクティビティストリームを実装する方法
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] シングルトン・パターンの欠点やデメリットは何ですか?[クローズド]
-
[解決済み] アグリゲート・ルートって何?
-
[解決済み】ラッパークラスとは何ですか?
-
[解決済み】インターフェイスを作成するタイミングはどのように判断するのでしょうか?
-
[解決済み】ファサードデザインパターンとは何ですか?
-
[解決済み] テンプレート方式とストラテジーパターンの違いは何ですか?
-
[解決済み] コード内のスイッチをなくす方法【非公開
-
[解決済み] Facade、Proxy、Adapter、Decoratorのデザインパターンの違い?
-
[解決済み] ゲームにおけるリプレイの概念的な仕組みについて教えてください。
-
[解決済み] ソーシャルネットワークにアクティビティストリームを実装する方法