私はここでライター、ストレージ、リーダーと呼ぶことができる3つのクラスが必要な他の多くのものの中でプログラムを書いています。シングルトンパターンを避ける必要がありますか?
ライターはストレージクラスに非常に頻繁にアクセスする必要がありますが、リーダーはライターと比較してあまり頻繁ではありません。ストレージクラスは、データライターの書き込みを格納するためにのみ存在します。作家がやっている唯一の事は、データの短いバーストをかなり頻繁に書くことです。読み取り装置は、記憶装置から書き込まれたデータを読み取り、記憶装置をフラッシュして、書き込み装置が新しいデータを書き込むためのスペースを解放する。いくつかの数字とアクセスの頻度のアイデアを与えるために、作家が数分でストレージにアクセスしており、読者が約1時間に1回それにアクセスしているとしましょう。
それでは、ストレージクラスでシングルトンパターンを使用する必要がありますか、静的クラスとして宣言するだけで十分ですか?
また、リーダークラスがストレージを使用しているときに、ストレージリソースを読み込み、フラッシュした直後にストレージリソースを解放する方法を確認できますか?ほとんどの場合、ストレージクラスは、ライターがデータを書き込むために使用できる必要があります。
シングルトンのアプローチは、特に私がOOPのバックグラウンドではないことが素敵です。私はそれが悪いと聞いたことがある。
私にとっては、並行性と同期の問題のように聞こえます。それに加えて、オブジェクトを作成するためのコンストラクタの適切な使用が最善の選択です。 – nobeh
いいえ、それは宿題ではありません。私はライターと読者が同時にストレージにアクセスしていないことを確認する必要がある稀な瞬間もありますが、これは同時に並行性と同期の問題であることに同意します。したがって、私はまた、リーダーができるだけ早く実行することを確認したいと思います。読者は実際に書いているフラッシュ操作を行う必要があることに注意してください(書込みなしでフラッシュする方法がない限り)。 – zaplec
[java.util.concurrent.locks](http://docs.oracle.com/javase/6/docs/api/java/util/concurrent/locks/package-summary)のさまざまなオプションを調べることをお勧めします。 html) – nobeh