“项目列表”或“项目列表”

时间:2012-03-20 10:08:26

标签: c++ naming-conventions

英语不是我的母语,我无法理解如何正确编写指定的样本。 当你说什么聚合多个对象,如“邮票收集”,你可以说:“邮票收集”,我是对的吗?如果你会说“集邮”,那就意味着一些“集合”,这是一个单一的“邮票”。

但是我常常看到类名为“ItemList”的类 - 这不是说这样的类是一个列表,而是其他的项目吗? 这样的样本更加刺激:

class ItemList: List<Item>

是不是必须如此?:

class ItemsList: List<Item>

为什么很少这么写?或者它是一些编程语言命名约定?或者只是适当的英语句子? :)

3 个答案:

答案 0 :(得分:24)

用英文,一套&#34;邮票和#34;是一个&#34;邮票收藏&#34;。(最好的,&#34;邮票收集&#34;将被理解)。

在编程中,我不完全确定原因,但我们 1 有时会使用表格&# 34; StampsCollection&#34;

这可能是因为我们试图使用比传统英语更精确和合乎逻辑的术语;我们从名称&#34; Item&#34;开始,通过声明我们收集的&#34; Items&#34;是一个&#34; List&#34;而不是&#34;数组&#34;或其他一些实施。

你可能会看到这两种变体,但这并不重要。

当然,无论是英语还是编程,ItemsList都不会隐含Items的集合列表,至少对大多数人来说都是如此。


1 ...对于某些值&#34;我们&#34;。当然,命名选择取决于个人偏好。但是,我个人认为这是一种倾向。

答案 1 :(得分:3)

我发现ItemList更具描述性。它是list类型的Item个对象。

另一方面,如果您有Item个对象的集合,则可以将其称为ItemsItemsList将指定list个集合。

答案 2 :(得分:0)

class Items: List<Item>

更具可读性,一般来说我做一个typedef

typedef List<Item> Items;

使用隐藏列表的更专业的类

class Encapsulation
{
    Items m_items;
}

“通过聚合优先于继承来构建作品”是OOP中常见的习语(引用Sutter / Alexandrescu)

集合的封装大多数时候都是一种降低调用代码复杂性的好习惯。