循環バッファを基にしたキューに対して適切な名前を選択し、古いデータを上書きして無限の記憶域を提供するのに役立つ必要があります。完全なときに古いデータを上書きする循環バッファベースのキューには、どのような名前が適していますか?
名前がちょうど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でしょうか?
これは[LRUキャッシュ](http://mcicpc.cs.atu.edu/archives/2012/mcpc2012/lru/lru.html)です。 – Yawar
興味深い。それを見てください。 –