«список предметов» или «список предметов» - PullRequest
36 голосов
/ 20 марта 2012

Английский не является моим родным языком, и я не могу понять, как правильно написать указанные образцы.Когда вы говорите что-то, что объединяет объект множественного числа, такой как «коллекция марок», вы можете сказать альтернативно: «коллекция марок», я прав?Если вы скажете «коллекция марок», это будет означать некоторую «коллекцию», которая представляет собой одну «печать».

Но часто я вижу классы с именами, такими как «ItemList» - разве это не означает, что такой класссписок, который является предметом чего-то еще?Такой пример более яркий:

class ItemList: List<Item>

Разве это не должно быть так?:

class ItemsList: List<Item>

Почему так редко пишется?Или это соглашение о присвоении имен для некоторых языков программирования?Или просто правильные английские предложения?:)

Ответы [ 3 ]

25 голосов
/ 20 марта 2012

На английском языке «коллекция марок» - это «коллекция марок». (в лучшем случае следует понимать «коллекцию марок»).

В программировании Я не совсем уверен, почему, но мы 1 делаем иногда используем форму "StampsCollection" .

Это может быть потому, что мы пытаемся использовать более точный и логичный язык, чем традиционный английский; мы начинаем с имени «Item», добавляем его к «Items», , затем , чтобы быть точным, заявив, что наша коллекция «Items» является «List», а не «Array» или какой-либо другой реализацией.

Вы, вероятно, увидите оба варианта, и это не имеет значения.

Конечно, ни в английском, ни в программировании ItemsList не будет означать список коллекций Items, по крайней мере, для большинства людей.


1 ... для некоторого значения «мы». Выбор имени, конечно, зависит от личных предпочтений. Однако я лично видел в этом тенденцию.

5 голосов
/ 20 марта 2012

Я считаю ItemList гораздо более информативным.Это list объектов типа Item.

С другой стороны, если бы у вас была коллекция Item объектов, вы могли бы назвать ее Items, и ItemsList обозначило быlist коллекций.

0 голосов
/ 20 марта 2012
class Items: List<Item>

и более читабельно, в общем делаю typedef

typedef List<Item> Items;

с более специализированным классом, который скрывает Список

class Encapsulation
{
    Items m_items;
}

«Предпочитать композицию путем агрегации, а не наследования» - распространенная идиома в ООП (цитата Саттера / Александреску)

Инкапсуляция коллекции в большинстве случаев является хорошей практикой, которая снижает сложность вызова кода.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...