問題タブ [singleton]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
3 に答える
1555 参照

ruby - Ruby でシングルトン デザイン パターンを使用してクラスを作成するにはどうすればよいですか?

シングルトン パターンは、クラスのインスタンス化を 1 つのオブジェクト インスタンスに制限するために使用される設計パターンです。C++ と Java でシングルトン パターンをコーディングする方法は知っていますが、Ruby でそれを実装する方法を知っている人はいますか?

0 投票する
9 に答える
26328 参照

c++ - C ++でのシングルトンのスレッドセーフな遅延構築

次のような C++ でシングルトン オブジェクトを実装する方法はありますか。

  1. スレッド セーフな方法で遅延構築します (2 つのスレッドが同時にシングルトンの最初のユーザーになる可能性がありますが、構築は 1 回だけにする必要があります)。
  2. 事前に構築されている静的変数に依存しません (そのため、静的変数の構築中にシングルトン オブジェクト自体を安全に使用できます)。

(私は自分の C++ を十分に理解していませんが、コードが実行される前に整数および定数の静的変数が初期化される場合 (つまり、静的コンストラクターが実行される前であっても - それらの値はプログラムで既に「初期化」されている可能性があります)もしそうなら - おそらくこれは、シングルトンミューテックスを実装するために悪用される可能性があります - これは、実際のシングルトンの作成を保護するために使用できます..)


すばらしい、私は今、いくつかの良い答えを持っているようです (残念ながら、2 つまたは 3 つを答えとしてマークすることはできません)。2 つの大まかな解決策があるようです。

  1. POD 静的変数の静的初期化 (動的初期化ではなく) を使用し、組み込みのアトミック命令を使用して独自のミューテックスを実装します。これは私の質問でほのめかしていた解決策のタイプであり、私はすでに知っていたと思います.
  2. pthread_onceboost::call_onceなどの他のライブラリ関数を使用します。これらは確かに知りませんでした-そして、投稿された回答に非常に感謝しています.
0 投票する
10 に答える
65902 参照

c# - C# 静的コンストラクターはスレッドセーフですか?

言い換えれば、このシングルトン実装はスレッドセーフですか?

0 投票する
23 に答える
19369 参照

language-agnostic - シングルトン: 優れた設計か松葉杖か?

シングルトンは熱く議論されているデザイン パターンであるため、スタック オーバーフロー コミュニティがシングルトンについてどう考えているかに興味があります。

「シングルトンは怠惰なプログラマー向けだ!」だけでなく、意見の理由を教えてください。

シングルトンの使用に反対していますが、この問題に関するかなり良い記事があります: Scientificninja.com: performant-singletons

他に良い記事を持っている人はいますか?多分シングルトンをサポートしていますか?

0 投票する
10 に答える
7201 参照

javascript - JavaScript を使用したデザイン パターンの実装例をいくつか教えてください。

私は JavaScript を使用するある程度熟練したプログラマーですが、達人ではありません。これを使って非常に強力なことができることは知っていますが、かなり基本的な DOM 操作以外はあまり見たことがありません。Factory Method、Singleton など、JavaScript を使用した従来の設計パターンの概念の例をいくつか提供していただけないでしょうか。これらのパターンは、Web でどのような場合に使用されますか?

0 投票する
7 に答える
26184 参照

java - Java シングルトンと静的 - 実際のパフォーマンス上の利点はありますか?

私は CVS ブランチをマージしていますが、より大きな変更の 1 つは、静的初期化ブロックとすべての静的メソッドを持つ抽象クラスを使用したシングルトン パターンの置換です。

これは、多くの競合をマージする必要があるため、保持する価値があるものですか?

このアプリは Weblogic 8.1 (つまり JDK 1.4.2) で実行しています。


すみません、トーマス、はっきりさせてください..

HEAD バージョンには従来のシングルトン パターン (プライベート コンストラクター、getInstance() など) があります。

ブランチ バージョンにはコンストラクターがなく、「パブリック抽象クラス」であり、オブジェクトのすべてのメソッドが「静的」に変更されています。プライベート コンストラクターに存在していたコードは、静的ブロックに移動されます。

次に、クラスのすべての使用法が変更され、マージで複数の競合が発生します。

この変更が行われたいくつかのケースがあります。

0 投票する
21 に答える
370963 参照

python - シングルトンを定義するシンプルでエレガントな方法はありますか?

Python でシングルトンを定義する方法はたくさんあるようです。Stack Overflow についてコンセンサス意見はありますか?

0 投票する
5 に答える
24614 参照

java - JUnit テストごとに異なるクラスローダーを使用していますか?

JUnit テストを作成したい Singleton/Factory オブジェクトがあります。Factory メソッドは、クラスパス上のプロパティ ファイル内のクラス名に基づいて、どの実装クラスをインスタンス化するかを決定します。プロパティ ファイルが見つからない場合、またはプロパティ ファイルに classname キーが含まれていない場合、クラスはデフォルトの実装クラスをインスタンス化します。

ファクトリはインスタンス化された後に使用するシングルトンの静的インスタンスを保持するため、ファクトリ メソッドで「フェイルオーバー」ロジックをテストできるようにするには、各テスト メソッドを異なるクラスローダーで実行する必要があります。

JUnit (または別の単体テスト パッケージ) でこれを行う方法はありますか?

編集:使用中のFactoryコードの一部を次に示します。

0 投票する
9 に答える
7351 参照

c# - シングルトンのメンバーのスレッドセーフな使用

複数のクラスが使用する C# シングルトン クラスがあります。InstanceメソッドへのアクセスはToggle()スレッドセーフですか? はいの場合、どのような仮定、ルールなどによって。いいえの場合、なぜどのように修正できますか?

0 投票する
0 に答える
124669 参照

python - Pythonとシングルトンパターン

重複の可能性:
Pythonでシングルトンを定義するためのシンプルでエレガントな方法はありますか?

Pythonでシングルトンパターンを実装するための最良の方法は何ですか?シングルトンパターンで通常行われているように、コンストラクターをプライベートまたは保護されていると宣言することは不可能のようです...