Best Practice zum Packen von Java-Enums? [geschlossen]


8

Was ist die beste Vorgehensweise zum Packen von Java-Enums?

Ist es eine separate Datei für jede Aufzählung?
oder
dieselbe Datei für alle Aufzählungen haben?

Was sind die Vor- und Nachteile?

Antworten:


9

Erstens lautet eine übergeordnete Regel: Wenn eine enumöffentlich ist, muss sie in einer eigenen Datei deklariert werden. Dies ist eine Java-Regel, die für alle Klassen, Schnittstellen und enums gilt, die nicht beschädigt werden können.

Für nicht öffentliche enums sollten Sie dieselbe Regel befolgen, außer wenn mehrere enums eng miteinander verbunden sind.

Wenn Sie beispielsweise einen Ausdrucksprozessor erstellen und eine Aufzählung für einen Ausdruckstyp, einen binären Ausdruckstyp und einen unären Ausdruckstyp deklarieren, möchten Sie möglicherweise die drei Aufzählungen in einer einzigen Datei zusammenfassen.


Tolle Erklärung. Gibt es irgendwelche Auswirkungen auf die Leistung? wenn wir eng verbundene Aufzählungen in derselben Klasse haben, verglichen mit jeder Aufzählung für jede Aufzählung.
Goodspeed

1
@goodspeed Das Platzieren von Klassen / Enums / Interfaces in Dateien hat keine Auswirkungen auf die Leistung (außer möglicherweise einem winzigen Einfluss auf die Kompilierungsgeschwindigkeit, den Sie sowieso nicht bemerken würden).
Dasblinkenlight

@dasblinkenlight Haben Sie Unterlagen zum Nachweis Ihres zweiten Satzes, wonach öffentliche Aufzählungen in einer eigenen Datei abgelegt werden sollten?
Max

1
@Max Die Regeln für enums unterscheiden sich nicht von den Regeln für andere Klassen: Wenn eine Klasse öffentlich ist, muss sie sich in der Datei an einem geeigneten Speicherort befinden, der mit dem Paketnamen übereinstimmt, wobei der Klassenname mit dem Dateinamen übereinstimmt.
Dasblinkenlight

@dasblinkenlight Ah, danke für deine Information und Zeit.
Max

4

Aufzählungen sind Klassen, daher sollten Sie sie als normale Klassen verpacken. Wenn die Aufzählung an vielen Stellen im Paket verwendet wird, fügen Sie sie in eine einzelne Datei ein. Wenn die Aufzählung stark mit einer Klasse verknüpft ist, setzen Sie sie als öffentliche (oder geschützte) statische innere Klasse ein.

Ich sehe keine Gründe, alle Aufzählungen in einer einzigen Datei zu platzieren, es sei denn, sie hängen zusammen.


Wenn sie verwandt sind, können Sie sie in einer Klasse verschachteln. öffentliche Klasse Pse164884 {öffentliche Aufzählung Katze {siamesisch, manx} öffentliche Aufzählung Hund {bullgog, Pudel}}
Ray Tayek
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.