2016-10-21 7 views
0

循環バッファを基にしたキューに対して適切な名前を選択し、古いデータを上書きして無限の記憶域を提供するのに役立つ必要があります。完全なときに古いデータを上書きする循環バッファベースのキューには、どのような名前が適していますか?

名前がちょうどQueueの場合、「ストレージがいっぱいになり、それ以上のアイテムをプッシュすると古いデータが上書きされます」という重要な情報は伝わりません。

一般的に言えば、単語Queueは、有限の記憶域を持つFIFO構造を示しています。だから、私は有限のストレージFIFOキューを作ったが、循環バッファに基づいて、ちょうどそれをQueueと呼んだ。キューがいっぱいになると、新しいデータが押し込まれている場合

今、古いデータを、私は内部的に限られた記憶円形のバッファを持っているこの無限のストレージ・キューに名前を付けたいが、それは上書きされます。

をここで起こって内部の議論です私の心:

コンテンダー:CircularBuffer/CyclicBuffer 思考:号まあであってもよいです。しかし、私はそれがキューであると伝えてはいけませんか?循環バッファはキュー以外のものに使用されていますか?それは実装の詳細です。

候補者:CircularBufferBasedQueue Eee!ヤク!いいえ!

コンテンダー:CircularBufferQueue 思考:間違った英語が、少し異常が、かなりうまく動作することを許します。理想的には、.NETフレームワークでは、そのような実装が存在する場合、個別の名前空間の下にありますが、この実装の詳細を示す、Queue(またはSystem.Collections.CircularBuffer.Queue)の名​​前があります。 SpecializedCollections,ConcurrentCollections,Collections.Genericなどのように他の多くのデータ構造がありました)、または循環バッファを使用する唯一の候補がキューだった場合は、CircularBufferQueueまたはCircularBufferedQueueとなります。その少しのedは単語の意味になります)。

CircularBufferXXXで始まる名前に対してもう1つのことは、循環バッファを持つことは実装の詳細なので、名前の一部であってはならないということです。それは、ArrayBasedLinkedListのようなものです。

ただし、循環バッファを使用すると、実装の詳細な記憶だけでなく、重要な動作も伝わります。この動作は、ドキュメントを読むこのデータ構造のユーザーの危険にさらされた場合に限り、生死と良いコードと悪いコードの違いになる可能性があります。

コンテンダー:誤解を招く:InfiniteStorageQueue 思考。ストレージは無限ではありません。デッドエンドを心配することなく書込みを続けることができるように、古いデータを上書きするだけです。

名前がInfiniteStorageQueueの場合は、通常のキュー名をFiniteStorageQueueとする必要があります。ヤク!それはちょうどいいように見えません。

どのようにこのデータ構造をtaxonomizeでしょうか?

+1

これは[LRUキャッシュ](http://mcicpc.cs.atu.edu/archives/2012/mcpc2012/lru/lru.html)です。 – Yawar

+0

興味深い。それを見てください。 –

答えて

2

あなたの説明はまっすぐに循環バッファの定義のように、私はなぜユニークなネーミングはよく分からないですね。私はそれをCircularBufferと呼んでいます。どうして?

  1. サーキュラバッファは、固定サイズのものとして定義されます。
  2. 循環バッファは、キューデータ構造として実装されています。
  3. 標準化された名前は、容易に理解し、検索可能です。

ただし、新しい名前が必要だった場合は、OverwritingCircularBufferとします。どうして?

  1. これは循環バッファーなので固定サイズです。
  2. 我々は、それが名前からデータを上書きしますことを知っています。
  3. 我々はそれがキューデータ構造になります知っています。

もちろん、メモリ割り当てサイズとともにどのように動作するかを説明するかなりのコメントを追加します。 :)

+1

私は 'CircularBuffer'で終わりました。 –

関連する問題