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


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

Например:

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

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

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

Редактировать:

  1. Очевидно, что в .NET имя интерфейса начиналось бы с I. Поэтому давайте немного изменим пример и назовем его PlayersGateway.

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

4 6

4 ответа:

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

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

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

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

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

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

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

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

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

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

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