Heim > Java > javaLernprogramm > Aufzählungen als Singletons in Java: Welche Implementierung ist für Sie am besten?

Aufzählungen als Singletons in Java: Welche Implementierung ist für Sie am besten?

Barbara Streisand
Freigeben: 2024-11-03 21:55:31
Original
1055 Leute haben es durchsucht

Enums as Singletons in Java: Which Implementation is Best for You?

Aufzählungen als Singletons in Java: Eine detaillierte Untersuchung

In der Programmiersprache Java bietet die Verwendung einer Aufzählung als Singleton eine bequeme Möglichkeit, sicherzustellen, dass nur eine Instanz von eine Klasse existiert. Es können jedoch unterschiedliche Ansätze verwendet werden, um dieses Singleton-Muster mit Aufzählungen zu implementieren, was zu geringfügigen Abweichungen in der Funktionalität und Verwendung führt.

Methode 1: Verwendung einer Aufzählungsinstanz mit privatem Konstruktor

<code class="java">public enum Elvis {
    INSTANCE;
    private int age;

    public int getAge() {
        return age;
    }
}</code>
Nach dem Login kopieren

In Bei diesem Ansatz wird das INSTANCE-Feld erstellt, das effektiv eine Singleton-Instanz der Elvis-Enumeration definiert. Der private Konstruktor schränkt die Instanziierung außerhalb der Enum-Definition ein. Um auf die Instanz zuzugreifen, würde man Elvis.INSTANCE.getAge() verwenden.

Methode 2: Verwendung einer öffentlichen statischen Methode

<code class="java">public enum Elvis {
    INSTANCE;
    private int age;

    public static int getAge() {
        return INSTANCE.age;
    }
}</code>
Nach dem Login kopieren

Hier ist das INSTANCE-Feld wie zuvor privat. Anstatt jedoch einen Getter für die Enum-Instanz verfügbar zu machen, wird eine öffentliche statische Methode getAge() bereitgestellt. Der Aufruf von Elvis.getAge() ruft die Alterseigenschaft der Enum-Instanz ab.

Vorteile und Nachteile

Methode 1:

  • Vorteile: Bietet sofortigen Zugriff auf die Singleton-Instanz, da diese immer als Elvis.INSTANCE verfügbar ist.
  • Nachteile: Der private Konstruktor kann es schwierig machen, die Elvis-Klasse als zu übergeben ein Parameter, da er möglicherweise nicht als Klasse mit öffentlichen Konstruktoren erkannt wird.

Methode 2:

  • Vorteile: Bietet Flexibilität durch die Möglichkeit statischer Methodenaufrufe, was die Bindung an externe Komponenten erleichtert und die Einschränkungen der Übergabe einer Enum-Instanz vermeidet.
  • Nachteile: Etwas ausführlicher als Methode 1, da es erfordert eine öffentliche statische Methode anstelle von 🎜>
Wenn ein direkter Verweis auf die Singleton-Instanz erforderlich ist und diese an externe Komponenten gebunden wird, die eine Instanz erwarten, ist

Methode 1

möglicherweise besser geeignet.

Wenn statische Methodenaufrufe ausreichen und die Bereitstellung von Flexibilität für die Bindung Priorität hat, bietet
    Methode 2
  • eine bequemere Option.
  • Im Allgemeinen sollten Sie die Verwendung statischer Methoden in Betracht ziehen, wenn die Funktionalität eigenständig ist und erfordert keine explizite Instanz der Enum-Klasse. Für Situationen, in denen die Eigenschaften einer Instanz wesentlich sind und ein direkter Zugriff erforderlich ist, kann der erste Ansatz angemessener sein.

Das obige ist der detaillierte Inhalt vonAufzählungen als Singletons in Java: Welche Implementierung ist für Sie am besten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage