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
    结束。