Heim > Java > javaLernprogramm > Detaillierte Erläuterung des Singleton-Musters in Java-Entwurfsmustern

Detaillierte Erläuterung des Singleton-Musters in Java-Entwurfsmustern

WBOY
Freigeben: 2024-05-09 14:51:02
Original
624 Leute haben es durchsucht

Das Singleton-Muster in Java wird durch die folgenden Schritte implementiert: Erstellen Sie einen privaten Klassenkonstruktor. Erstellen Sie eine private statische Variable als Referenz auf die einzige Instanz. Stellen Sie eine öffentliche statische Methode bereit, um die Instanz abzurufen. Statische Referenzvariablen als endgültig deklarieren. Deklarieren Sie die Implementierungsklasse als final.

Detaillierte Erläuterung des Singleton-Musters in Java-Entwurfsmustern

Java-Entwurfsmuster: Singleton-Muster

Einführung

Mit dem Singleton-Muster kann sichergestellt werden, dass es in einer Anwendung nur eine Instanz einer Klasse geben kann. Es trägt dazu bei, die Zustandskonsistenz aufrechtzuerhalten, vermeidet unnötige Objekterstellung und vereinfacht die Verwaltung.

Implementierung des Singleton-Musters in Java

In Java kann das Singleton-Muster mit den folgenden Schritten implementiert werden:

  1. Erstellen Sie einen privaten Konstruktor: Deklarieren Sie den Klassenkonstruktor als privat, um zu verhindern, dass er von außerhalb von Chemical instanziiert wird Kategorie.
  2. Erstellen Sie eine private statische Variable: Erstellen Sie eine private statische Variable der Klasse, die als Referenz auf die einzige Instanz verwendet werden soll.
  3. Stellen Sie eine öffentliche statische Methode bereit: Stellen Sie eine öffentliche statische Methode bereit, um die Instanz abzurufen, und erstellen Sie zuerst die Instanz, falls sie noch nicht erstellt wurde.
  4. Variablen als endgültig deklarieren: Statische Referenzvariablen als endgültig deklarieren, um zu verhindern, dass sie neu zugewiesen werden.
  5. Deklarieren Sie eine Klasse als final: Deklarieren Sie eine Implementierungsklasse als final, um zu verhindern, dass Unterklassen dieser Klasse erstellt werden.

Beispielcode:

public class Singleton {

    private static final Singleton INSTANCE = new Singleton();

    private Singleton() {
        // 私有构造函数
    }

    public static Singleton getInstance() {
        return INSTANCE;
    }

}
Nach dem Login kopieren

Praktischer Fall

Stellen Sie sich eine Messaging-Anwendung vor, die Benutzersitzungen verwaltet. Die Anwendung muss einen eindeutigen Verweis auf den aktuellen Benutzer aufrechterhalten, um dessen Aktivitäten und Präferenzen während der Sitzung zu verfolgen. Das Singleton-Muster kann verwendet werden, um diese eindeutige Benutzerinstanz wie folgt zu verwalten:

public class UserManager {

    private static final UserManager INSTANCE = new UserManager();
    private User currentUser;

    private UserManager() {
        // 私有构造函数
    }

    public static UserManager getInstance() {
        return INSTANCE;
    }

    public void setCurrentUser(User user) {
        this.currentUser = user;
    }

    public User getCurrentUser() {
        return currentUser;
    }

}
Nach dem Login kopieren

Durch die Verwendung des Singleton-Musters kann die UserManager-Klasse sicherstellen, dass nur eine Kopie des Benutzersitzungsstatus verwaltet und verwaltet wird. Dies trägt zur Vereinfachung der Benutzerverwaltung bei und stellt die Konsistenz über alle Anwendungen hinweg sicher.

Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung des Singleton-Musters in Java-Entwurfsmustern. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage