"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? :)
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ę.
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.
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.
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