In der gleichen Weise, dass, wenn Sie einen Tabellennamen in einer Datenbank oder eine Klasse in Java definieren, verwenden Sie Singular für Aufzählungen es ist auch die beste Option. Sehen Sie einfach, wie Sie es verwenden werden.
Nehmen wir ein Beispiel schreiben:
public enum Day {
SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY
}
class Appointment {
private Day day;
public void setDay(Day day) {
this.day = day;
}
}
In Singularform sieht man deutlich die Absicht des Tages Attribut. "Tag" ist der Tag der Woche, an dem dieser Termin stattfindet. Sonst wäre die Signatur der Methode gesetzt (Tag der Tage) und sicherlich werden sich viele Leute fragen, ob der Termin an mehr als einem Tag stattfinden könnte.
Wenn Sie in einem Unternehmen arbeiten, das hat 48 Stunden verschieben Sie könnten versuchen, so etwas wie zu definieren:
public enum Days {
MONDAY_TUESDAY, WEDNESDAY_THURSDAY, FRIDAY_SATURDAY
}
Auf diese Weise kann die Tage einstellen könnten Sie arbeiten werden. Aber dennoch wird es aussehen komisch, und es ist eine bessere Option und ist die Singularform zu verwenden:
public enum Shift {
MONDAY_TUESDAY, WEDNESDAY_THURSDAY, FRIDAY_SATURDAY
}
nun wirklich Sie die Bedeutung des Enum zeigen. Normalerweise werden Sie in jeder Domäne feststellen, dass die Verwendung von Singular für eine Enumeration die beste Option ist, da jede Konstante in der Enumeration nur ein Element ist.
Sie erwähnen auch .NET. Eine "Flags" -Enumerierung in .NET bedeutet nur, dass wenn Sie diese Enumeration als einen Parameter erwarten, was Sie wirklich bekommen, eine Liste von Elementen dieser Enumeration (gespeichert als Integer) ist.
// Define an Enum with FlagsAttribute.
[FlagsAttribute]
enum MultiHue : short
{
Black = 0,
Red = 1,
Green = 2,
Blue = 4
};
public void setMultiHue(MultiHue hues);
Sie könnten das gleiche in Java tun, aber die ENUM noch singulär sein:
public enum Hue {
BLACK, RED, GREEN, BLUE;
private final Integer hue;
Hue() {
this.hue = 1 << this.ordinal();
}
public Integer toFlag() {
return this.hue;
}
}
public class MultiHue {
private Integer hues = 0;
public void addHue(Hue hue) {
this.hues |= hue.toFlag();
}
public boolean hasHue(Hue hue) {
return (this.hues & hue.toFlag()) != 0;
}
}
Ein einfache und übersichtliche (obwohl es einen Speicher verwendet) dies mit Java zu tun, ist nur zu Benutze eine Liste.
Ich denke, das ist ein Problem mit einer hohen relativen Antwort. –
[Hier finden Sie die Antwort] (http://stackoverflow.com/questions/3069743/coding-conventions-naming-enums). Enums sind Klassen, das heißt, Sie sollten sie auf die gleiche Weise deklarieren. – bsiamionau