Singleton

Från Wikipedia
Hoppa till: navigering, sök

Inom datavetenskap är begreppet Singleton ett designmönster som innebär att man begränsar antalet instanser av en klass till ett objekt.

Exempel på implementation[redigera | redigera wikitext]

Singleton implementeras genom att man skapar en klass med en metod som skapar en instans om det inte redan finns en. Om det finns en instans av klassen, returnerar metoden en referens av det objektet. För att förhindra skapandet av flera instanser görs konstruktorn privat (private) eller skyddad (protected).

Idén med en singletonklass är alltså att det i programmet bara kommer att finnas en och endast en instans av klassen och att den som använder klassen inte behöver veta när den skapas. Singletonklassen skapas första gången någon ber om en referens till klassen.

Java[redigera | redigera wikitext]

public class Singleton {
  // Privat konstruktor som förhindrar att det skapas en publik automatiskt
  private Singleton() {}

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

  public static Singleton getInstance() {
    return SingletonHolder.instance;
  }
}