"items list"或"item list"



英语不是我的母语,我不明白如何正确编写指定的示例。当你说一些聚合复数对象的东西,比如"集邮"时,你可以说:"集邮",对吗?如果你说"集邮",那就意味着一些"收藏",即一张"邮票"。

但我经常看到类的名称像"ItemList"——这不意味着这样的类是一个列表,它是其他东西的一个项吗?这样的样品更容易燃烧:

class ItemList: List<Item>

不是必须如此吗?:

class ItemsList: List<Item>

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

在英语中,"邮票集"就是"邮票收藏"(最多只能理解为"集邮")。

在编程中,我不完全确定原因,但我们1有时会使用"StampsCollection"的形式

这可能是因为我们试图使用比传统英语更精确、更合乎逻辑的行话;我们从名称"Item"开始,将其复数为"Items",然后更准确地说,我们的"Item"集合是一个"List",而不是"Array"或其他实现。

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

当然,无论是在英语中还是在编程中,ItemsList都不会暗示Items的集合列表,至少对大多数人来说不是这样。


1。。。为了"我们"的一些价值。当然,命名的选择取决于个人喜好。然而,我个人认为这是一种趋势。

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

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

class Items: List<Item>

而且可读性更强,通常我会做一个typedef

// C++98
typedef List<Item> Items;
// since C++11 you can write it also this way, and I prefer this:
using Items = List<Item>;

考虑一个隐藏List的更专业的类通常是的好做法(干净的代码)";通过聚合而非继承的组合是优选的"是OOP中常见的习语(引用Sutter/Andrescu:C++编码标准:101规则、指南和最佳实践)

在大多数情况下,封装集合是一种很好的做法,可以降低调用代码的复杂性:

class Encapsulation
{
    Items m_items;
    public: 
    void AddItem(const Item&);
    void RemoveAllItems();
    // ... all the functions about managing the List that would be otherwise boilerplate code spread all over your codebase
}

最新更新