"lista przedmiotów" lub " lista przedmiotów"

Angielski nie jest moim ojczystym językiem i nie mogę zrozumieć, jak poprawnie napisać określone próbki. Kiedy mówisz coś, co agreguje obiekt liczby mnogiej, taki jak "kolekcja znaczków", możesz powiedzieć alternatywnie: "kolekcja znaczków", mam rację? Jeśli powiesz" kolekcja znaczków", oznacza to pewną "kolekcję", która jest pojedynczym "znaczkiem".

Ale często widzę klasy o nazwach takich jak" ItemList " - czy to nie znaczy, że taka klasa jest listą, która jest elementem czegoś innego? Taka próbka jest bardziej płomienny:

class ItemList: List<Item>
Czy nie musi tak być?:
class ItemsList: List<Item>

Dlaczego tak rzadko się pisze? A może to jakaś konwencja nazewnictwa języków programowania? Czy tylko poprawne angielskie zdania? :)

Author: Jeremy McGee, 2012-03-20

3 answers

W języku angielskim "collection of stamps" to "kolekcja znaczków". (w najlepszym wypadku "kolekcja znaczków" będzie rozumiana).

W programowaniu, nie jestem do końca pewien dlaczego, ale my1do czasami używa się formy "StampsCollection" .

Być może dlatego, że staramy się używać bardziej precyzyjnego i logicznego żargonu niż zapewnia tradycyjny angielski; zaczynamy od nazwy "Item", mnożąc ją do "Items", następnie być precyzyjnym, stwierdzając, że nasz zbiór " elementów "jest" listą", a nie" tablicą " lub inną implementacją.

Prawdopodobnie zobaczysz oba warianty, ale to naprawdę nie ma znaczenia.

Z pewnością, ani w języku angielskim, ani w programowaniu, ItemsList nie sugerowałoby listy zbiorów Items, przynajmniej nie dla większości ludzi.


1 ... za jakąś wartość "my". Wybór nazwy zależy oczywiście od osobistych preferencji. Jednak osobiście postrzegam to jako tendencję.

 18
Author: Lightness Races in Orbit,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-03-20 20:27:29

Uważam ItemList za dużo bardziej opisowy. Jest to list obiektów typu Item.

Z drugiej strony, jeśli posiadasz zbiór Item obiektów, możesz go nazwać Items, a ItemsList wyznaczyć list zbiorów.

 3
Author: Luchian Grigore,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-03-20 10:31:28
class Items: List<Item>

I bardziej czytelne, ogólnie robię typedef

typedef List<Item> Items;

Z bardziej wyspecjalizowaną klasą, która ukrywa listę

class Encapsulation
{
    Items m_items;
}

"preferuj kompozycję przez agregację nad dziedziczeniem" jest powszechnym idiomem w OOP (cytując Suttera/Alexandrescu)

Enkapsulacja zbioru jest w większości przypadków dobrą praktyką, która obniża złożoność kodu wywołującego.

 -1
Author: Stephane Rolland,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-09-29 15:47:28