Своеобразный вопрос об английском языке: использование множественного числа в первой части имени идентификатора
Как неродной носитель английского языка, я часто задаюсь вопросом об использовании формы множественного числа в начальной части(ах) имен существительных при именовании классов или объектов.
Например:
-
Если у меня есть интерфейс для нескольких [потоковых] игроков, то хорошо бы назвать его
PlayersInterface
, в отличие отPlayerInterface
, который является интерфейсом для одного игрока? -
Если существует служба, которая обрабатывает события, можно ли назвать ее
EventsService
? ИлиEventService
звучит значительно - лучше?
Редактировать:
-
Очевидно, что в .NET имя интерфейса начиналось бы с
I
. Поэтому давайте немного изменим пример и назовем егоPlayersGateway
. -
На самом деле у меня нет другого класса с именем
PlayerInterface
(илиPlayerGateway
). Это был просто пример альтернативного имени, которое я использовал бы, если бы мне нужен был интерфейс только для одного игрока. Я думаю, что использовать иPlayerGateway
, иPlayersGateway
в одном проекте трудно. поддерживайте, чтобы не сказать зло будущим членам команды. Поэтому, пожалуйста, предположим, что нетPlayerGateway
, простоPlayersGateway
.
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-лучшие имена, которые лучше звучат для английского уха.