"список элементов" или "список элементов"
Английский язык не является моим родным языком, и я не могу понять, как правильно писать указанные образцы.
Когда вы говорите что-то, что совокупность множественного объекта, такого как "коллекция марок", вы можете сказать альтернативно: "сбор марок", правильно? Если вы скажете "коллекция штампов", это будет означать некоторую "коллекцию", которая представляет собой единый "штамп".
Но часто я вижу классы с именами типа "ItemList" - разве это не означает, что такой класс является списком, который является элементом чего-то еще?
Такой образец более близок:
class ItemList: List<Item>
Разве это не должно быть так?:
class ItemsList: List<Item>
Почему это так редко написано? Или это какое-то соглашение об именах языков программирования? Или просто правильные английские предложения?:)
Ответы
Ответ 1
На английском языке "коллекция марок" является "коллекцией марок". (В лучшем случае "сбор марок" будет понят).
В программировании я не совсем уверен, почему, но мы 1 иногда используем форму "StampsCollection" .
Возможно, это связано с тем, что мы пытаемся использовать более точный и логичный язык, чем предлагает традиционный английский; мы начинаем с имени "Item", умножаем его на "Items", а затем уточняем, что наша коллекция "Items" является "List", а не "Array" или какой-либо другой реализацией.
Вероятно, вы увидите оба варианта, и это не имеет большого значения.
Разумеется, ни на английском, ни на программировании ItemsList
не подразумевается список коллекций Items
, по крайней мере, не для большинства людей.
1... для некоторого значения "мы". Выбор наименований, конечно, зависит от личных предпочтений. Тем не менее, я лично видел это как тенденцию.
Ответ 2
Я нахожу ItemList
гораздо более описательным. Это list
объектов типа Item
.
С другой стороны, если у вас есть коллекция объектов Item
, вы можете назвать ее Items
, а ItemsList
будет обозначать list
коллекций.
Ответ 3
class Items: List<Item>
И более читаемый, в общем, я делаю typedef
typedef List<Item> Items;
с более специализированным классом, который скрывает список
class Encapsulation
{
Items m_items;
}
"Предпочитают композицию путем агрегирования по наследованию" - распространенная идиома в ООП (цитирование Саттера/Александреску)
Инкапсуляция коллекции в большинстве случаев является хорошей практикой, которая снижает сложность вызова кода.