Heim >Java >javaLernprogramm >Aufzählungen als Singletons in Java: Privater Konstruktor vs. statische Methoden – Welcher Ansatz ist der richtige für Sie?
In Java können Enums als Singletons genutzt werden, was einen präzisen und effizienten Mechanismus zum Erstellen und Zugreifen bietet globale, einzigartige Instanzen. Es gibt jedoch zwei Hauptansätze zur Implementierung dieses Entwurfsmusters mithilfe von Aufzählungen: die Verwendung eines privaten Konstruktors mit einem INSTANCE-Feld im Vergleich zur ausschließlichen Verwendung statischer Methoden.
Privater Konstruktoransatz
<code class="java">public enum Elvis { INSTANCE; private int age; public int getAge() { return age; } }</code>
Bei diesem Ansatz wird die Enumeration mit einem privaten Konstruktor deklariert, wodurch eine direkte Instanziierung verhindert wird. Anschließend wird ein einzelnes INSTANCE-Feld erstellt, das als einzige Instanz der Aufzählung dient. Auf diese Instanz kann über das statische Feld INSTANCE zugegriffen werden.
Statischer Methodenansatz
<code class="java">public enum Elvis { INSTANCE; private int age; public static int getAge() { return INSTANCE.age; } }</code>
Alternativ verwendet der statische Methodenansatz eine statische Methode, um die Alterseigenschaft abzurufen des INSTANCE-Feldes. In diesem Fall wird die Enumeration ohne einen privaten Konstruktor deklariert und die statische getAge()-Methode wird verwendet, um auf die Alterseigenschaft des INSTANCE-Felds zuzugreifen (das ebenfalls statisch deklariert werden muss).
Vor- und Nachteile jedes Ansatzes
Privater Konstruktoransatz:
Statischer Methodenansatz:
Bester Ansatz
Die Wahl zwischen den beiden Ansätzen hängt von den spezifischen Anforderungen der Anwendung ab. Wenn eine strenge Kontrolle über die Instanzerstellung und die Trennung von Instanz und Methoden von größter Bedeutung sind, ist der Ansatz des privaten Konstruktors vorzuziehen. Wenn jedoch die Fähigkeit zum Übergeben oder Binden von Instanzen unerlässlich ist, ist der statische Methodenansatz eine praktikablere Option. Letztendlich sollte die Entscheidung auf der Grundlage der Kompromisse und Anforderungen des einzelnen Projekts getroffen werden.
Das obige ist der detaillierte Inhalt vonAufzählungen als Singletons in Java: Privater Konstruktor vs. statische Methoden – Welcher Ansatz ist der richtige für Sie?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!