私は時々クライアントが照会するものを検索する必要があるサーバーを実行しています。レコードのためにクライアントのクエリをディスクに書きたいと思っていますが、私はこれ以上検索を遅くしたくありません。 (検索はすでにボトルネックになっています...)シングルトンデザインパターンを正しく使用しています
クライアントが検索を実行すると、クライアントのスレッドがシングルトンスレッドにメッセージを送信します。シングルトンスレッドは、クライアントスレッドクライアントの要求を引き続き処理します。この方法では、ディスク上のファイルは同期の問題に陥ることはなく、クライアントの動作が遅くなることはありません。
ここでは概念的な質問があります。この場合、シングルトンは適切ですか?最近のプログラミングでは、シングルトンのデザインパターンを少し使いすぎていましたが、意図した使い方で使用していることを確認したいのです。
ご意見をいただければ幸いです。
全体的なアーキテクチャを見なくてもこの質問に答えるのは難しいです。シングルトンパターンには欠点があります(ユニットテストの難しさなどを引き起こします)。それらが関連しているかどうかを判断するのはあなた次第です... –
Oliの迅速な応答ありがとうございます。私はユニットテストの難しさについて読んだが、全体的な意味を理解していない。そのような重要性の世界的な状態を避けるのはなぜですか?たとえば、プログラムが書き込むディスク上に1つのファイルしかない場合、別の部分で同時にアクセスできないことを確認したくないのですか? – Sal
グローバルな状態が存在すると、依存関係を注入することが難しくなります(これは[模擬テスト](http://en.wikipedia.org/wiki/Mock_object)の基礎です)。詳しくは、http://googletesting.blogspot.com/2008/11/clean-code-talks-global-state-and.htmlをご覧ください。 –