Singleton

Das Singleton-Pattern gewährleistet, dass von einer Klasse nur genau eine Instanz existiert.

Es stellt einen globalen Zugriffspunkt auf diese einzige Instanz bereit.

Important

Singleton-Eigenschaften:

  • Nur eine Instanz der Klasse
  • Globaler Zugriffspunkt
  • Lazy Initialization (auf Anfrage erstellen)
  • Thread-Safety beachten
Example

public class DatabaseConnection {
   private static DatabaseConnection instance;
   
   // Private Konstruktor verhindert direkte Instanziierung
   private DatabaseConnection() {}
   
   // Thread-safe Singleton
   public static synchronized DatabaseConnection getInstance() {
       if (instance == null) {
           instance = new DatabaseConnection();
       }
       return instance;
   }
}

// Verwendung
DatabaseConnection db = DatabaseConnection.getInstance();

Warning

Kann zu tight coupling führen und Testing erschweren.