1. ホーム
  2. design-patterns

[解決済み] GOFシングルトンパターンに代わる実行可能な選択肢はありますか?

2023-02-15 14:16:02

質問

現実を見ましょう。 シングルトンパターンは 非常に論議を呼ぶ のプログラマが大勢いる話題です。 の両側からプログラマが殺到している話題です。 シングルトンは見栄えのするグローバル変数に過ぎないと感じている人もいれば、パターンによって誓い、絶え間なく使う人もいるのです。 私は シングルトン論争 が私の質問の核心にあることは避けたいと思います。 を弖紗することができます誰もが弖紗を弖紗し、弖紗を弖紗し、弖紗を弖紗することができます。 . 私が言いたいのは、唯一の正解があるとは思っていませんし、意図的に党派的な論争を煽ろうとしているわけでもないということです。私が興味があるのは、単に シングルトン-オルタナティヴ に興味があるだけです。

GOF シングルトンパターンの具体的な代替案はありますか?

たとえば、私が過去にシングルトンパターンを使用したとき、多くの場合、私は単に1つまたはいくつかの変数の状態/値を保持することに興味があります。 しかし、変数の状態/値は、クラスの各インスタンス化の間、次のものを使用して保存することができます。 静的変数 を使えば、シングルトンパターンの代わりに変数の状態や値を保持することができます。

他にどんなアイディアがありますか?

EDITです。 私はこれが"シングルトンを正しく使用する方法についての別の投稿になることを本当に望んでいません。 楽しみのために、OK? 私はあなたの最高の映画の予告編の声で純粋に学術的な質問をしていると思います、"シングルトンが存在しないパラレルワールドでは、我々は何ができるのでしょうか?

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

アレックス・ミラー in "。 私が嫌いなパターン "で次のように引用しています。

"シングルトンが答えのように見えるとき、私はそれがしばしば賢明であることを発見します。

  1. インターフェイスとシングルトンのデフォルトの実装を作成する。
  2. システムの「トップ」にデフォルトの実装のインスタンスを1つ構築します。これはSpringの設定であったり、コードであったり、システムによって様々な方法で定義されます。
  3. 単一のインスタンスを、それを必要とする各コンポーネントに渡します (依存性注入)