英语不是我的母语,我无法理解如何正确编写指定的样本。 当你说什么聚合多个对象,如“邮票收集”,你可以说:“邮票收集”,我是对的吗?如果你会说“集邮”,那就意味着一些“集合”,这是一个单一的“邮票”。
但是我常常看到类名为“ItemList”的类 - 这不是说这样的类是一个列表,而是其他的项目吗? 这样的样本更加刺激:
class ItemList: List<Item>
是不是必须如此?:
class ItemsList: List<Item>
为什么很少这么写?或者它是一些编程语言命名约定?或者只是适当的英语句子? :)
答案 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
个对象的集合,则可以将其称为Items
,ItemsList
将指定list
个集合。
答案 2 :(得分:0)
class Items: List<Item>
更具可读性,一般来说我做一个typedef
typedef List<Item> Items;
使用隐藏列表的更专业的类
class Encapsulation
{
Items m_items;
}
“通过聚合优先于继承来构建作品”是OOP中常见的习语(引用Sutter / Alexandrescu)
集合的封装大多数时候都是一种降低调用代码复杂性的好习惯。