[解決済み] なぜスタティックメソッドではなく、シングルトンを使うのか?
2022-12-16 12:25:23
疑問点
ヘルパークラスやユーティリティクラスに関するこのような単純な質問に対する良い答えは見つけられませんでした。
- なぜ静的メソッドを使用する代わりにシングルトン (ステートレス) を作成しなければならないのでしょうか。
- オブジェクトが状態を持たないのに、なぜオブジェクトのインスタンスが必要なのでしょうか?
どのように解決するのですか?
多くの場合、シングルトンはある種の グローバルな状態 をアプリケーションに導入するために使用されます。(正直に言うと、本当に必要以上に頻繁に、しかしそれは別の時間のためのトピックです)。
しかし、いくつかのコーナーケースでは ステートレス シングルトンでも役に立つ場合があります。
- 近い将来、ステートで拡張することを想定している。
-
あなたは
オブジェクトのインスタンス
を必要とします。
技術的
のような理由です。
例 C# の同期化オブジェクトlock
またはJavaのsynchronized
ステートメントを使用します。 -
継承が必要な場合、つまり、同じインターフェースで異なる実装のシングルトンを簡単に置き換えることができるようにしたい場合です。
例 このような場合Toolkit.getDefaultToolkit()
メソッドは、正確な型がシステム依存であるシングルトンを返します。 -
あなたは
参照等価
に対して
センチネル値
.
例DBNull.Value
をC#で表示します。
関連
-
無効なメソッド宣言
-
XXX型を囲むインスタンスがJavaでアクセスできない
-
ApiModel と @ApiModelProperty の使用法
-
[解決済み] この2回(1927年)を引き算すると、なぜおかしな結果になるのでしょうか?
-
[解決済み] serialVersionUIDとは何ですか、またなぜそれを使用する必要がありますか?
-
[解決済み] 静的クラスとシングルトンパターンの違い?
-
[解決済み] Pythonでシングルトンを作成する
-
[解決済み] 静的変数が悪とされるのはなぜですか?
-
[解決済み】Android UserManager.isUserAGoat()の正しい使用例?)
-
[解決済み】なぜJavaの+=, -=, *=, /=複合代入演算子はキャスティングを必要としないのですか?
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
mvn' は、内部または外部のコマンド、操作可能なプログラムまたはバッチファイルとして認識されません。
-
executeQuery()でデータ操作文が発行できない。解決方法
-
java.sql.SQLException: executeQuery()でデータ操作文を発行できません。
-
メモ帳でJavaプログラムをコンパイルして実行すると、Could not find or load main class ...というエラーが表示される。解決方法
-
Uncaught ReferenceError: は定義されていません。
-
SpringBoot 起動エラー java.nio.charset.MalformedInputException: 入力長 = 2 解決
-
ジャバアレイ
-
アノテーション「@Retention」の役割
-
XXX型を囲むインスタンスがJavaでアクセスできない
-
IDEAError:javaの依存性エラー。Annotation processing is not supported for module cycles...(アノテーション処理はモジュールサイクルではサポートされていません。