Типа вопрос по английскому языку: использование множественного числа в первой части имени идентификатора

Поскольку английский язык не является для меня родным, я часто задаюсь вопросом об использовании формы множественного числа в начальной части (частях) словосочетаний с существительными при именовании классов или объектов.

Например:

  • Если у меня есть интерфейс к нескольким [потоковым] проигрывателям, правильно будет назвать его PlayersInterface, а не PlayerInterface, который является интерфейсом для одного проигрывателя?

  • Если есть служба, которая обрабатывает события, можно ли назвать ее EventsService? Или EventService звучит значительно лучше?

Спасибо за помощь!

ИЗМЕНИТЬ:

  1. Очевидно, что в .NET имя интерфейса должно начинаться с I. Итак, давайте немного изменим пример и назовем его PlayersGateway.

  2. У меня действительно нет другого класса с именем PlayerInterface (или PlayerGateway). Это был просто пример альтернативного имени, которое я использовал бы, если бы мне нужен был интерфейс только для одного игрока. Я думаю, что использование и PlayerGateway, и PlayersGateway в одном проекте тяжело поддерживать, чтобы не сказать зла будущим членам команды. Итак, предположим, что PlayerGateway нет, а есть только PlayersGateway.


person Ilya Kogan    schedule 17.02.2011    source источник
comment
Случай использования EventService, на мой взгляд, прост и понятен - обе формы грамматически правильны, и это зависит от вашего соглашения об именах. Я хотел бы знать: WidgetsList или WidgetList?   -  person tillda    schedule 17.02.2011
comment
Не специалист по C#, но разве это не IPlayerи IPlayers? И звучит лучше имхо.   -  person    schedule 17.02.2011
comment
Я лично считаю, что жизнь проще, если WidgetList используется только для List‹Widget›, WidgetsList можно использовать для List‹List‹Widget››. В ответ на исходный вопрос вы можете выбрать имя, например «MultiPlayerInterface   -  person Jimmy    schedule 17.02.2011
comment
Я никогда не видел, чтобы множественное число использовалось в манере WidgetsList, хотя это должно было бы считаться правильным именем. Посмотрим правде в глаза, никто не создает EventService для обработки только одного (или одного типа) события, так что это действительно ДОЛЖНО быть EventsService - это никогда не будет.   -  person Rich    schedule 17.02.2011
comment
@delnan, спасибо за комментарий, я отредактировал вопрос.   -  person Ilya Kogan    schedule 17.02.2011


Ответы (4)


В английском языке, когда вы вставляете существительное рядом с другим существительным, чтобы изменить его, вы обычно используете единственное число:

 Coat Room
 Guard Tower

даже несмотря на то, что в комнате может быть несколько пальто или охранников в башне. ИМХО, именование переменных должно соответствовать общим правилам языка.

person dandan78    schedule 17.02.2011

Насколько я понимаю, вы должны использовать формулировку слова в единственном числе. Например, если бы у вас был класс Car, и у вас был бы класс, содержащий множество экземпляров класса Car, вы бы назвали его CarCollection вместо Cars.

person Brent    schedule 17.02.2011
comment
Я согласен, хотя я бы добавил, что если бы у вас была их коллекция, например. List‹Car›, можно назвать эту переменную 'cars'. - person Grant Crofton; 17.02.2011
comment
правда, если вы не путаете себя, я определенно сталкивался с проблемами с переменными/коллекциями, где единственная разница в именах - это один символ - person Brent; 17.02.2011

Я бы предпочел использовать единственное число. EventHandler или EventService означали бы, что они будут обрабатывать одно событие за другим. Что касается видеоплееров, меня можно было бы убедить, если бы вы сказали, что подключаетесь к нескольким плеерам и управляете ими практически одновременно.

У вас есть второй тип/переменная для единственного случая?

PlayersInterface AllPlayers = new PlayersInterface();
PlayerInterface MyPlayer0 = AllPlayers.getPlayer(0);
PlayerInterface MyPlayer2 = AllPlayers.getPlayer(1);

Даже тогда я думаю, что два названия типов слишком похожи.

Но, это личные предпочтения.

person Tom Cerul    schedule 17.02.2011
comment
Спасибо, @Tom, но это не совсем то, что я имею в виду, я думаю, что не так хорошо сформулировал вопрос. Я отредактировал вопрос, чтобы уточнить, что я имел в виду. - person Ilya Kogan; 17.02.2011

Форма единственного числа часто имеет большее семантическое значение для имен классов и имен таблиц в базах данных, потому что каждый экземпляр (или строка в базе данных) является сингулярностью.

Вы можете применить те же рассуждения и к массивам. Вы можете думать о посылке[4] как о посылке №4, а не как о четвертой группе посылок.

ИМХО, EventService и PlayerInterface - лучшие имена, которые лучше звучат для английского уха.

person MattBianco    schedule 17.02.2011