[解決済み] シングルトン・パターンの欠点やデメリットは何ですか?[クローズド]
2022-03-16 20:28:46
質問
は シングルトンパターン は、完全な GoF 's パターン集 しかし、最近、開発者の世界では、どちらかというと孤立しているようです。私は今でも多くのシングルトンを使っていて、特に ファクトリークラス そして、マルチスレッドの問題には少し注意しなければなりませんが(実際には他のクラスと同様)、なぜそれがそんなにひどいのか分かりません。
スタックオーバーフローは特に、シングルトンが悪であることに誰もが同意していると思い込んでいるようです。なぜでしょうか?
回答の裏付けは"でお願いします。 事実、参考資料、または特定の専門知識 となります。
解決方法
ブライアン・バトンの言い換え。
-
一般的にグローバルインスタンスとして使用されますが、なぜそれが悪いのでしょうか?なぜなら、アプリケーションの依存関係を、インターフェースを通して公開するのではなく、コードの中に隠してしまうからです。何かを渡すのを避けるためにグローバルにするのは コード臭 .
-
に違反している。 単一責任原則 : 自らの創造とライフサイクルをコントロールするという事実によって。
-
これらは本質的に、コードがタイトになる原因となる カップリング . このため、多くの場合、テスト時のフェイクアウトはかなり困難です。
-
アプリケーションのライフタイムに渡って状態を持ち運ぶことになる。また、テストを順番に行う必要があるため、テストに支障をきたします。これはユニットテストの大きな欠点です。なぜでしょうか?なぜなら、それぞれのユニットテストは他のユニットテストから独立していなければならないからです。
関連
-
[解決済み] MVPとMVC、その違いは何ですか?
-
[解決済み] Inversion of Controlとは?
-
[解決済み] 静的クラスとシングルトンパターンの違い?
-
[解決済み] Pythonでシングルトンを作成する
-
[解決済み] デザインパターンについて。シングルトンはいつ使うべきですか?
-
[解決済み】クラスの命名 - すべてを"<WhatEver>Manager "と呼ぶのを避けるには?[クローズド]
-
[解決済み】C++ シングルトンデザインパターン
-
[解決済み】MVCにおけるビジネスロジック【終了しました
-
[解決済み] Facade、Proxy、Adapter、Decoratorのデザインパターンの違い?
-
[解決済み] リポジトリとサービスの違い?
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] アグリゲート・ルートって何?
-
[解決済み】ラッパークラスとは何ですか?
-
[解決済み] コード内のスイッチをなくす方法【非公開
-
[解決済み] シェルスクリプトのデザインパターンやベストプラクティス [終了しました]。
-
[解決済み] Observerデザインパターンと "Listeners "の比較
-
[解決済み] リポジトリとサービスの違い?
-
[解決済み】デザインパターンを勉強するには?[クローズド]。
-
[解決済み] デザインパターンとアーキテクチャパターンの違いは何ですか?
-
[解決済み] ソーシャルネットワークにアクティビティストリームを実装する方法
-
[解決済み] ServiceLocatorはアンチパターンか?