[Java] Singleton-Muster

Java-Lernnotizen

Einzelne Tonne Muster

Grundlegend (Voraussetzung für die Verwendung aus einem einzelnen Thread)

SingletonClass.java


package com.company;

public class SingletonClass {
    private static SingletonClass instance = new SingletonClass();

    private SingletonClass() {}

    public static SingletonClass getInstance() {
        return instance;
    }
}

Main.java


package com.company;

public class Main {
    public static void main(String[] args) {
        SingletonSample obj = SingletonSample.getInstance();
    }
}

Multithread-Unterstützung

Wie oben erwähnt, werden Instanzen erstellt, wenn die Klasse zum ersten Mal verwendet wird, nicht wenn sie geladen wird. Wenn Sie also Multithread-Aufrufe an getInstance () zulassen, haben Sie mehrere Instanzen. Kann erstellt werden.

Das Folgende kann als Gegenmaßnahme erwähnt werden.

Verwenden Sie einen synchronisierten Modifikator


class Singleton {
    static Singleton instance = null;
    public static synchronized Singleton getInstace() {
        if (instance == null) {
            instance = new Singleton();
        }
        return instance;
    }
}

Initialize-on-Demand_Holder_Klassenmuster


class Singleton {
    private Singleton(){}

    public static Singleton getInstace() {
        return SingletonHolder.INSTANCE;
    }

    private static class SingletonHolder {
        private static final Singleton INSTANCE = new Singleton();
    }
}

Referenz Entwurfsmuster "Singleton" - Qiita Erstellen Sie nicht mehrere Instanzen des MSC07-J. Singleton-Objekts

Beziehung

[C # 6.0 ~] Implementierung des Singleton-Musters --Qiita

Referenz

Java Singleton Design Pattern-Qiita Erstellen Sie nicht mehrere Instanzen des MSC07-J. Singleton-Objekts

Recommended Posts

[Java] Singleton-Muster
Singleton-Muster
Singleton-Muster
[Java] Strategiemuster
Java-Rückrufmuster
Entwurfsmuster ~ Singleton ~
[Java] Adaptermuster
Java-Muster-Memo
Mein DAO-Muster (Java)
[Java] Über Singleton Class
Builder-Muster (effektives Java)
Zusammenfassung des Java-Entwurfsmusters
[Entwurfsmuster] Java-Kernbibliothek
Java
Enum Strategiemuster in Java
[Java] Zeichnen Sie ein einfaches Muster
Java
Verstehen Sie das Singleton-Muster, indem Sie Java- und JavaScript-Code vergleichen
JNA-Mustersammlung (Java Native Access)
Java Calendar ist kein Singleton.
Java-Anfänger-Entwurfsmuster (Factory-Methodenmuster)
Prototypmuster
Java lernen (0)
Java studieren ―― 3
[Java] -Array
Java geschützt
Erinnerungsmuster
[Java] Anmerkung
[Java] Modul
Java-Array
Vermittlermuster
Iteratormuster
Java studieren ―― 9
Java Scratch Scratch
Java-Tipps, Tipps
Zusammengesetztes Muster
Java-Methoden
Java-Methode
Java (Konstruktor)
Java-Array
Beobachtermuster
Java (überschreiben)
Java (Methode)
Builder-Muster
Java Day 2018
Java-Zeichenfolge
Brückenmuster
Java statisch
Java-Serialisierung
Java Anfänger 4
JAVA hat bezahlt
Java studieren ―― 4
Befehlsmuster
Java (gesetzt)
[Java] compareTo
Java studieren -5
Builder-Muster
Java reflektierend 获 获 举
Java (Schnittstelle)
Java-Memorandum