Data structures 什么';基于循环缓冲区的队列在满时重写旧数据,这是个好名字吗?
我需要帮助为基于循环缓冲区的队列选择一个好名称,该队列覆盖旧数据,从而提供无限存储 如果我只是将其命名为Data structures 什么';基于循环缓冲区的队列在满时重写旧数据,这是个好名字吗?,data-structures,computer-science,Data Structures,Computer Science,我需要帮助为基于循环缓冲区的队列选择一个好名称,该队列覆盖旧数据,从而提供无限存储 如果我只是将其命名为队列,它不会传达“当存储空间已满时,它会覆盖旧数据,而您会将更多项目推入其中”这一重要细节 一般来说,只有单词Queue表示具有有限存储的FIFO结构。因此,我创建了一个有限存储FIFO队列,但基于循环缓冲区,并将其称为队列 现在,我想命名这个无限存储队列,它在内部有一个有限的存储循环缓冲区,但是如果队列已满并且新数据被推入,它会覆盖旧数据 以下是我脑海中正在进行的内部辩论: 竞争者:Circ
队列
,它不会传达“当存储空间已满时,它会覆盖旧数据,而您会将更多项目推入其中”这一重要细节
一般来说,只有单词Queue
表示具有有限存储的FIFO结构。因此,我创建了一个有限存储FIFO队列,但基于循环缓冲区,并将其称为队列
现在,我想命名这个无限存储队列,它在内部有一个有限的存储循环缓冲区,但是如果队列已满并且新数据被推入,它会覆盖旧数据
以下是我脑海中正在进行的内部辩论:
竞争者:CircularBuffer/CyclicBuffer
想法:不。嗯,可能是。但我不应该告诉他们这是排队吗?循环缓冲区是否用于队列以外的任何其他用途?此外,这是一个实现细节
竞争者:CircularBufferBasedQueue
伊!讨厌!不
竞争者:循环缓冲队列
想法:错误的英语,但原谅这个小小的反常现象,效果相当不错。理想情况下,在.NET framework中,如果有这样的实现,它将位于单独的命名空间下,但名称仅为Queue
(或System.Collections.CircularBuffer.Queue
),这表明此实现详细说明它基于循环缓冲区(如果有许多其他基于此的数据结构,就像我们有SpecializedCollections
,ConcurrentCollections
,Collections.Generic
,等等)或者,如果队列是唯一一个使用循环缓冲区的候选队列,那么它将被称为CircularBufferQueue
或CircularBufferedQueue
(不确定添加这个小ed对单词的含义有何影响)
我反对任何以CircularBufferXXX
开头的名称的另一件事是,具有循环缓冲区是一个实现细节,因此不应该成为名称的一部分。这就像说,ArrayBasedLinkedList
但是,同样,拥有循环缓冲区也传达了重要的行为,而不仅仅是实现存储细节。这种行为,如果让阅读文档的数据结构的用户承担风险的话,可能是生与死、好代码与坏代码之间的区别
竞争者:InfinitestorageUE
想法:误导性。存储不是无限的。只是它覆盖了旧数据,这样你就可以继续写,而不必担心遇到死胡同
如果我将其命名为InfiniteStorageQueue
,那么我是否应该将常规队列命名为FiniteStorageQueue
。糟糕!看起来不太对劲
您将如何对该数据结构进行分类?您的描述听起来像是一个直接循环缓冲区的定义,我不知道为什么会有唯一的命名。我将其命名为
CircularBuffer
。为什么
然后当然添加一些漂亮的注释,解释它是如何与内存分配大小一起工作的。您的描述听起来像是一个直接循环缓冲区的定义,我不确定为什么会使用唯一的命名。我就叫它
CircularBuffer
。为什么?
然后当然添加一些漂亮的注释,解释它是如何与内存分配大小一起工作的。:) 这是一个有趣的故事。看看那个,真有趣。向上看。我以
CircularBuffer
结束。我以CircularBuffer
结束。