coding style - guide - ¿Singular o plural para enumeraciones?
google style guide (8)
En general, considero que una definición enum es una definición de tipo, con los valores de la enumeración como los diferentes valores que puede tener el tipo; por lo tanto, recibe un nombre singular:
enum Weekday { SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY };
enum CoffeeSize { SMALL, MEDIUM, LARGE };
Sí. Si haces la experiencia mental de implementar las enumeraciones como clases, entonces el hecho de que uses un nombre singular para el tipo debería revelar que tiene sentido usar nombres singulares para tales enumeraciones. P.ej,
struct Weekday {};
const Weekday SUNDAY;
const Weekday MONDAY;
const Weekday TUESDAY;
...
void func (Weekday *day)
{
if (day == &SUNDAY)
...
}
¿Para quién prefiere los plurales en enumeraciones, nombrarías esa struct Weekdays
?
¿Usas singular o plural para enumeraciones? Creo que tiene el mejor sentido con el plural en la declaración
enum Weekdays
{
Monday,
Tuesday,
Wednesday,
Thursday,
Friday,
Saturday,
Sunday
}
... pero creo que tiene más sentido con singular cuando se usa el tipo, por ejemplo
Weekday firstDayOfWeek = Weekday.Monday;
Leí una recomendación en algún lugar para usar singular con enumeraciones regulares y plural con banderas, pero me gustaría escuchar algunos más pros y contras.
Al igual que la convención C # / Microsoft, las enumeraciones en Java deberían ser singulares: http://docs.oracle.com/javase/tutorial/java/javaOO/enum.html
Aquí está directamente de Microsoft:
http://msdn.microsoft.com/en-us/library/4x252001(VS.71).aspx
Use un nombre singular para la mayoría de los tipos Enum, pero use un nombre plural para los tipos Enum que son campos de bits.
En .NET Framework, la mayoría de las enumeraciones "normales" (por ejemplo, DayOfWeek
) tienen nombres singulares y enumeraciones de indicadores (por ejemplo, BindingFlags
, BindingFlags
) tienen nombres en plural. Tiene sentido, ya que un valor de una enumeración de indicador puede representar varios elementos, pero para un enum no indicador, solo puede representar un único elemento.
En general, considero que una definición enum es una definición de tipo, con los valores de la enumeración como los diferentes valores que puede tener el tipo; por lo tanto, tiene un nombre singular:
enum Weekday { SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY };
enum CoffeeSize { SMALL, MEDIUM, LARGE };
Es subjetivo y no importa lo que uses, siempre y cuando seas consecuente (personalmente utilizo el singular como un traspaso de mis convenciones Sql)
Microsoft recommends usar un nombre singular para enumeraciones a menos que use el atributo Flags
. Y como se extrajo del libro de Lineamientos de Diseño del Marco, no debe sufijo los nombres de tipo de enumeración con Enum, Flags, etc. y no debe prefijar valores de enumeración con una abreviatura o acrónimo como era común con enumeraciones de VB en el día.
Una recomendación proviene de las Pautas de diseño de .NET Framework , página 59-60:
Utilice un nombre de tipo singular para una enumeración, a menos que sus valores sean campos de bits.
public enum ConsoleColor { Black, Blue, Cyan, ...
Utilice un nombre de tipo plural para una enumeración con campos de bits como valores, también llamada lista de indicadores.
[Flags] public enum ConsoleModifiers { Alt, Control, Shift }